openapi: 3.0.0
paths:
  /config:
    get:
      operationId: AppController_get
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                properties:
                  config:
                    properties:
                      minRequiredVersion:
                        type: string
      tags:
        - Config
  /ingredients:
    get:
      operationId: IngredientsController_getAll
      summary: Get all ingredients
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Ingredient'
      tags:
        - Ingredients
      security:
        - bearer: []
    post:
      operationId: IngredientsController_addProduct
      summary: add new ingredient in list
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddIngredientDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ingredient'
      tags:
        - Ingredients
      security:
        - bearer: []
  /ingredients/{id}:
    delete:
      operationId: IngredientsController_deleteProduct
      summary: delete ingredient
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResult'
      tags:
        - Ingredients
      security:
        - bearer: []
    put:
      operationId: IngredientsController_updateIngredient
      summary: update ingredient
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddIngredientDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ingredient'
      tags:
        - Ingredients
      security:
        - bearer: []
  /auth/signin/oauth/callback:
    put:
      operationId: AuthController_oauthCallback
      summary: oauth callback
      description: Exchange the code received from oauth provider for a token
      parameters:
        - name: code
          required: true
          in: query
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - Auth
  /auth/check:
    get:
      operationId: AuthController_check
      summary: check access token
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckDTO'
      security:
        - bearer: []
      tags:
        - Auth
  /auth/signout:
    put:
      operationId: AuthController_signOut
      summary: sign out
      parameters: []
      responses:
        '200':
          description: ''
      security:
        - bearer: []
      tags:
        - Auth
  /auth/refresh-token:
    put:
      operationId: AuthController_refreshToken
      summary: get new access-token and refresh-token
      parameters:
        - name: refreshToken
          required: true
          in: query
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenDTO'
      tags:
        - Auth
  /auth/registration:
    post:
      operationId: AuthController_registrateUser
      summary: start registrating User
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AdminCredentialsUserDto'
      responses:
        '201':
          description: ''
      tags:
        - Auth
  /auth/registration/confirm-email:
    put:
      operationId: AuthController_finishRegistration
      summary: finish registrating User
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FinishRegistrationUserDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenDTO'
      tags:
        - Auth
  /auth/signin:
    put:
      operationId: AuthController_signIn
      summary: sign in
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AdminCredentialsUserDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenDTO'
      tags:
        - Auth
  /auth/signin/oauth/google:
    get:
      operationId: GoogleController_googleAuth
      summary: start oauth by google
      description: "Redirects to google to verify user \n\t\t\tidentity, then redirects back to front redirect url with code. The code must be sent to oauth callback\n\t\t\tendpoint to receive the token"
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Auth
  /auth/signin/oauth/facebook:
    get:
      operationId: FacebookController_facebookAuth
      summary: start oauth by facebook
      description: "Redirects to facebook to verify user \n\t\t\tidentity, then redirects back to front redirect url with code. The code must be sent to oauth callback\n\t\t\tendpoint to receive the token"
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Auth
  /auth/signin/phone:
    post:
      operationId: PhoneController_phoneAuth
      summary: phone number auth
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PhoneAuthDTOBody'
      responses:
        '201':
          description: ''
      tags:
        - Auth
  /v2/auth/signin/phone:
    post:
      operationId: PhoneController_phoneAuthV2
      summary: phone number auth
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PhoneAuthDTOBody'
      responses:
        '201':
          description: ''
      tags:
        - Auth
  /auth/signin/phone/callback:
    put:
      operationId: PhoneController_phoneAuthCallback
      summary: phone number auth callback
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PhoneAuthCallbackDTOQuery'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenDTO'
      tags:
        - Auth
  /auth/signin/oauth/vk:
    get:
      operationId: VkController_vkAuth
      summary: Start oauth by vkontakte
      description: "Redirects to vkontakte to verify user \n\t\t\tidentity, then redirects back to front redirect url with code. The code must be sent to oauth callback\n\t\t\tendpoint to receive the token"
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Auth
  /auth/signin/oauth/yandex:
    get:
      operationId: YandexController_yandexAuth
      summary: Start oauth by yandex
      description: "Redirects to yandex to verify user \n\t\t\tidentity, then redirects back to front redirect url with code. The code must be sent to oauth callback\n\t\t\tendpoint to receive the token"
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Auth
  /auth/signin/oauth/apple:
    get:
      operationId: AppleController_appleAuth
      summary: Start oauth by apple
      description: >-
        Redirects to yandex to verify user identity, then redirects back to
        front redirect url with code. The code must be sent to oauth callback
        endpoint to receive the token
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Auth
  /auth/email/check:
    get:
      operationId: EmailController_checkEmail
      summary: Проверка зарегистрирована ли почта(для входа по почте)
      parameters:
        - name: email
          required: true
          in: query
          example: test@gmail.com
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckEmailResponseDto'
      tags:
        - Auth
  /auth/email/singin:
    post:
      operationId: EmailController_signInByEmail
      summary: Вход по почте
      description: ''
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CredentialsBodyDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenDTO'
      tags:
        - Auth
  /auth/email/register:
    post:
      operationId: EmailController_register
      summary: Регистрация по почте
      description: ''
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CredentialsBodyDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenDTO'
      tags:
        - Auth
  /auth/email/restore:
    post:
      operationId: EmailController_restorePassword
      summary: Генерация нового пароля (для входа по почте)
      description: На указанную почту отправляется пароль
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailBodyDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenDTO'
      tags:
        - Auth
  /user/profile:
    patch:
      operationId: UsersController_updateProfile
      summary: update user profile
      parameters: []
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UpdationProfileDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateProfileBO'
      security:
        - bearer: []
      tags:
        - User
    delete:
      operationId: UsersController_deleteProfile
      summary: delete user and user profile (dev only)
      parameters: []
      responses:
        '200':
          description: ''
      security:
        - bearer: []
      tags:
        - User
  /user:
    get:
      operationId: UsersController_getUser
      summary: get user profile with children
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponseDto'
      security:
        - bearer: []
      tags:
        - User
  /user/auth-type:
    get:
      operationId: UsersController_getUserAuthType
      summary: Получение типа авторизации пользователя
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserAuthTypeResponseDto'
      security:
        - bearer: []
      tags:
        - User
  /user/login-details/change:
    post:
      operationId: UsersController_changePassword
      summary: Обновление данных для входа пользователя(только есть authType = 'email')
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChangePasswordDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponseDto'
      security:
        - bearer: []
      tags:
        - User
  /user/password/check:
    post:
      operationId: UsersController_checkPassword
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CheckPasswordDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PasswordCheckDto'
      security:
        - bearer: []
      tags:
        - User
  /user/auth-type/email/password/generate:
    post:
      operationId: UsersController_generatePasswordForChangingAuthTypeOnEmail
      summary: Генерация нового пароля для смены типа авторизации(authType) на email
      description: Генерирует новый пароль для входа по почте и отправляет на email
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailBodyDto'
      responses:
        '204':
          description: ''
      security:
        - bearer: []
      tags:
        - User
  /user/auth-type/email/change:
    post:
      operationId: UsersController_changeAuthTypeOnEmail
      summary: Меняет тип авторизации(authType) на вход по почте(email)
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PasswordBodyDto'
      responses:
        '204':
          description: ''
      security:
        - bearer: []
      tags:
        - User
  /user/rating/set-rating:
    post:
      operationId: UsersController_setRating
      summary: Rate the app
      parameters:
        - name: rating
          required: true
          in: query
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rating'
      security:
        - bearer: []
      tags:
        - User
  /users:
    get:
      operationId: UserV2Controller_list
      parameters:
        - name: limit
          required: false
          in: query
          schema:
            type: number
        - name: offset
          required: false
          in: query
          schema:
            type: number
        - name: search
          required: false
          in: query
          schema:
            type: string
        - name: filters[authTypes]
          required: false
          in: query
          schema:
            type: string
        - name: orderBy[createdAt]
          required: false
          in: query
          schema:
            enum:
              - DESC
              - ASC
            type: string
        - name: orderBy[lastActivityAt]
          required: false
          in: query
          schema:
            enum:
              - DESC
              - ASC
            type: string
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListUserDto'
      tags:
        - User
      security:
        - bearer: []
  /users/{id}:update-activity:
    post:
      operationId: UserV2Controller_updateLastActivity
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDto'
      tags:
        - User
      security:
        - bearer: []
  /users/{id}:
    get:
      operationId: UserV2Controller_getProfileV2
      summary: get user v2
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserWithProfileV2Dto'
      tags:
        - User
      security:
        - bearer: []
    delete:
      operationId: UserV2Controller_delete
      summary: Delete user
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - User
      security:
        - bearer: []
  /users/{id}/profile:
    patch:
      operationId: UserV2Controller_updateProfileV2
      summary: update user profile v2
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdationProfileV2Dto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProfileV2Dto'
      tags:
        - User
      security:
        - bearer: []
  /users/{id}/children/{childId}:
    patch:
      operationId: UserV2Controller_updateChild
      summary: Обновление профиля ребенка
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
        - name: childId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdationChildV2Dto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChildResponseDto'
      tags:
        - User
      security:
        - bearer: []
  /users/{id}/children/{childId}:reset:
    post:
      operationId: UserV2Controller_resetChild
      summary: Сброс профиля и схемы ребенка
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
        - name: childId
          required: true
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChildResponseDto'
      tags:
        - User
      security:
        - bearer: []
  /children/{childId}/heights/{date}:
    put:
      operationId: ChildHeightController_createOrUpdate
      parameters:
        - name: childId
          required: true
          in: path
          schema:
            type: number
        - name: date
          required: true
          in: path
          schema:
            format: date-time
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationChildHeightDto'
      responses:
        '200':
          description: ''
      tags:
        - Children
      security:
        - bearer: []
    delete:
      operationId: ChildHeightController_delete
      parameters:
        - name: childId
          required: true
          in: path
          schema:
            type: number
        - name: date
          required: true
          in: path
          schema:
            format: date-time
            type: string
      responses:
        '204':
          description: ''
      tags:
        - Children
      security:
        - bearer: []
  /children/{childId}/heights:
    get:
      operationId: ChildHeightController_list
      parameters:
        - name: childId
          required: true
          in: path
          schema:
            type: number
        - name: orderBy[date]
          required: false
          in: query
          schema:
            enum:
              - DESC
              - ASC
            type: string
        - name: filters[maxDate]
          example: '2023-02-02'
          in: query
          required: true
          schema:
            type: string
        - name: filters[minDate]
          example: '2023-02-02'
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListChildHeightDto'
      tags:
        - Children
      security:
        - bearer: []
  /children/{childId}/weights/{date}:
    put:
      operationId: ChildWeightController_createOrUpdate
      parameters:
        - name: childId
          required: true
          in: path
          schema:
            type: number
        - name: date
          required: true
          in: path
          schema:
            format: date-time
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationChildWeightDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChildWeight'
      tags:
        - Children
      security:
        - bearer: []
    delete:
      operationId: ChildWeightController_delete
      parameters:
        - name: childId
          required: true
          in: path
          schema:
            type: number
        - name: date
          required: true
          in: path
          schema:
            format: date-time
            type: string
      responses:
        '204':
          description: ''
      tags:
        - Children
      security:
        - bearer: []
  /children/{childId}/weights:
    get:
      operationId: ChildWeightController_list
      parameters:
        - name: childId
          required: true
          in: path
          schema:
            type: number
        - name: orderBy[date]
          required: false
          in: query
          schema:
            enum:
              - DESC
              - ASC
            type: string
        - name: filters[maxDate]
          example: '2023-02-02'
          in: query
          required: true
          schema:
            type: string
        - name: filters[minDate]
          example: '2023-02-02'
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListChildWeightDto'
      tags:
        - Children
      security:
        - bearer: []
  /children/{childId}/statistics:
    get:
      operationId: ChildStatisticController_getChildStatistic
      summary: Получение статистики ребенка
      parameters:
        - name: childId
          required: true
          in: path
          schema:
            type: number
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChildStatisticDto'
      tags:
        - Children
      security:
        - bearer: []
  /product-types:
    get:
      operationId: ProductTypesController_getProductTypes
      summary: get all product types list
      parameters: []
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductTypeBodyDto'
      tags:
        - Product types
      security:
        - bearer: []
  /schemas/{schemaId}:
    get:
      operationId: SchemasController_getSchema
      summary: get schema
      parameters:
        - name: schemaId
          required: true
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaResponseDto'
      security:
        - bearer: []
      tags:
        - Schema
  /schemas/{schemaId}/product-types/{productTypeId}:
    delete:
      operationId: SchemasController_excludeProductType
      summary: exclude product type
      parameters:
        - name: schemaId
          required: true
          in: path
          schema:
            type: number
        - name: productTypeId
          required: true
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExcludeProductTypeResponseDto'
      security:
        - bearer: []
      tags:
        - Schema
  /steps/{stepId}/product-types:
    get:
      operationId: SchemasController_getStepProductTypes
      summary: get product types list for schema step
      parameters:
        - name: stepId
          required: true
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StepProductTypeResponseDto'
      security:
        - bearer: []
      tags:
        - Steps
  /steps/{stepId}/check-replaced:
    put:
      operationId: SchemasController_chechReplacedProducts
      summary: check product can be replaced
      parameters:
        - name: stepId
          required: true
          in: path
          schema:
            type: number
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckReplacedProductResponseDto'
      security:
        - bearer: []
      tags:
        - Steps
  /steps/{stepId}/replace:
    put:
      operationId: SchemasController_replaceProduct
      summary: replace product
      parameters:
        - name: stepId
          required: true
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaResponseDto'
      security:
        - bearer: []
      tags:
        - Steps
  /steps/{stepId}/postpone:
    put:
      operationId: SchemasController_postponeStep
      summary: postpone step
      parameters:
        - name: stepId
          required: true
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostponeStepResponseDto'
      security:
        - bearer: []
      tags:
        - Steps
  /test/steps/{stepId}/postpone:
    put:
      operationId: SchemasController_postponeStepForTest
      summary: postpone step
      parameters:
        - name: stepId
          required: true
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostponedStepsDto'
      security:
        - bearer: []
      tags:
        - For test
  /steps/{stepId}/return-postponed:
    put:
      operationId: SchemasController_returnPostponedStep
      summary: return postponed step back
      parameters:
        - name: stepId
          required: true
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReturnPostponedStepResponseDto'
      security:
        - bearer: []
      tags:
        - Steps
  /test/steps/{stepId}/return-postponed:
    put:
      operationId: SchemasController_returnPostponedStepForTest
      summary: return postponed step back
      parameters:
        - name: stepId
          required: true
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReturnPostponedStepResponseDto'
      security:
        - bearer: []
      tags:
        - For test
  /steps/{stepId}/complete-step:
    put:
      operationId: SchemasController_completeStep
      summary: Complete step
      parameters:
        - name: stepId
          required: true
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaResponseDto'
      security:
        - bearer: []
      tags:
        - Steps
  /steps/allergen-step:
    put:
      operationId: SchemasController_allergenStep
      summary: Put step into allergens
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AllergenBodyDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaResponseDto'
      security:
        - bearer: []
      tags:
        - Steps
  /test/steps/allergen-step:
    put:
      operationId: SchemasController_allergenStepForTest
      summary: Put step into allergens
      description: Return the entity of allergened steps
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AllergenBodyDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllrgenStepsResponseDto'
      security:
        - bearer: []
      tags:
        - For test
  /steps/{stepId}/return-allergened:
    put:
      operationId: SchemasController_returnAllergenedStep
      summary: Return allergened step back
      parameters:
        - name: stepId
          required: true
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaResponseDto'
      security:
        - bearer: []
      tags:
        - Steps
  /test/steps/{stepId}/return-allergened:
    put:
      operationId: SchemasController_returnAllergenedStepForTest
      summary: Return allergened step back
      description: Return the entity of allergened steps
      parameters:
        - name: stepId
          required: true
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllrgenStepsResponseDto'
      security:
        - bearer: []
      tags:
        - For test
  /steps/{stepId}/attached-product-type:
    put:
      operationId: SchemasController_changeStepAttachedProductType
      summary: change step attached product type
      parameters:
        - name: stepId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChangeStepAttachedProductTypeBodyDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChangeStepAttachedProductTypeResponseDto'
      security:
        - bearer: []
      tags:
        - Steps
  /schemas/reset/{schemaId}:
    post:
      operationId: SchemasController_resetSchema
      summary: Reset custom schema
      parameters:
        - name: schemaId
          required: true
          in: path
          schema:
            type: number
      responses:
        '201':
          description: ''
      security:
        - bearer: []
      tags:
        - For test
  /menu:
    get:
      operationId: MenusController_getMenu
      summary: get menu
      parameters:
        - name: schemaId
          required: true
          in: query
          schema:
            type: number
        - name: dateStart
          required: true
          in: query
          schema:
            format: date
            type: string
        - name: dateEnd
          required: true
          in: query
          schema:
            format: date
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MenuDayResponseDto'
      tags:
        - Menu
      security:
        - bearer: []
  /menu/pause/{schemaId}:
    patch:
      operationId: MenusController_pauseFeeding
      summary: pause feeding
      parameters:
        - name: schemaId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SchemaPauseBodyDto'
      responses:
        '200':
          description: ''
      tags:
        - Menu
      security:
        - bearer: []
  /menu/unpause/{schemaId}:
    patch:
      operationId: MenusController_unpauseFeeding
      summary: unpause feeding
      parameters:
        - name: schemaId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SchemaPauseBodyDto'
      responses:
        '200':
          description: ''
      tags:
        - Menu
      security:
        - bearer: []
  /menu/check-pause/{schemaId}:
    get:
      operationId: MenusController_checkPauseFeeding
      summary: check pause feeding
      parameters:
        - name: schemaId
          required: true
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
      tags:
        - Menu
      security:
        - bearer: []
  /menu/mealtimes/{schemaId}:
    get:
      operationId: MenusController_getMealtimes
      summary: get mealtimes
      parameters:
        - name: schemaId
          required: true
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MealtimesDto'
      tags:
        - Menu
      security:
        - bearer: []
  /menu/mealtimes/reset/{schemaId}:
    patch:
      operationId: MenusController_resetMealtimes
      summary: reset mealtimes
      parameters:
        - name: schemaId
          required: true
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MealtimesDto'
      tags:
        - Menu
      security:
        - bearer: []
  /menu/mealtimes/changeTime/{schemaId}:
    patch:
      operationId: MenusController_changeMealtime
      summary: change mealtime
      parameters:
        - name: schemaId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChangeMultipleMealtimesBodyDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MealtimesDto'
      tags:
        - Menu
      security:
        - bearer: []
  /admin/photos/children:
    get:
      operationId: FilesController_getAllChildPhotos
      parameters:
        - name: limit
          required: false
          in: path
          schema:
            type: number
        - name: offset
          required: false
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
      tags:
        - Admin
  /files:
    post:
      operationId: FilesController_create
      parameters: []
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
              required:
                - file
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileDto'
      tags:
        - Files
  /products/{productId}/staff:batchAdd:
    post:
      operationId: ProductController_addStaff
      summary: Добавление команды к продукту пачкой
      parameters:
        - name: productId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeletionMultipleDto'
      responses:
        '204':
          description: ''
      tags:
        - Product
      security:
        - bearer: []
  /products/{productId}/staff:batchRemove:
    post:
      operationId: ProductController_removeStaff
      summary: Открепление команды от продукта пачкой
      parameters:
        - name: productId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeletionMultipleDto'
      responses:
        '204':
          description: ''
      tags:
        - Product
      security:
        - bearer: []
  /products/{productId}:publish:
    post:
      operationId: ProductController_publish
      summary: Публикация продукта
      parameters:
        - name: productId
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Product
      security:
        - bearer: []
  /products/{productId}:hide:
    post:
      operationId: ProductController_hide
      summary: Скрытие продукта
      parameters:
        - name: productId
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Product
      security:
        - bearer: []
  /users/{id}/favoriteProducts:add:
    post:
      operationId: UserProductController_add
      summary: Добавление продукта в избранное
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationFavoriteProductDto'
      responses:
        '204':
          description: ''
      tags:
        - User
      security:
        - bearer: []
  /users/{id}/favoriteProducts:remove:
    post:
      operationId: UserProductController_delete
      summary: Удаление продукта из избранного
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationFavoriteProductDto'
      responses:
        '204':
          description: ''
      tags:
        - User
      security:
        - bearer: []
  /products/{productId}/questions:
    get:
      operationId: QuestionController_list
      summary: Получение вопросов
      parameters:
        - name: productId
          required: true
          in: path
          schema:
            type: number
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListQuestionDto'
      tags:
        - Product
    post:
      operationId: QuestionController_create
      summary: Добавление вопроса
      parameters:
        - name: productId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationQuestionDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuestionAnswer'
      tags:
        - Product
      security:
        - bearer: []
  /products/{productId}/questions:batchCreate:
    post:
      operationId: QuestionController_createBatch
      summary: Добавление вопросов пачкой
      parameters:
        - name: productId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchCreationQuestionDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ActionMultipleResultResponseDto'
                  - properties:
                      result:
                        type: array
                        items:
                          type: object
                          properties:
                            isExecuted:
                              type: boolean
                              example: true
                            entity:
                              type: object
                              $ref: '#/components/schemas/QuestionDto'
                            error:
                              type: obj
                              example: >-
                                { "statusCode": 400, "message": {
                                "propertyName": { "error": "propertyName must be
                                an integer number"}}}
                              nullable: true
                            status:
                              type: number
                              format: integer
                              example: 400
                              nullable: true
      tags:
        - Product
      security:
        - bearer: []
  /products/{productId}/questions/{id}:
    patch:
      operationId: QuestionController_update
      summary: Обновление вопроса
      parameters:
        - name: productId
          required: true
          in: path
          schema:
            type: number
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdationQuestionDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuestionAnswer'
      tags:
        - Product
      security:
        - bearer: []
    delete:
      operationId: QuestionController_delete
      summary: Удаление вопроса
      parameters:
        - name: productId
          required: true
          in: path
          schema:
            type: number
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Product
      security:
        - bearer: []
  /products/{productId}/questions:batchUpdate:
    post:
      operationId: QuestionController_updateBatch
      summary: Обновление вопросов пачкой
      parameters:
        - name: productId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchUpdationQuestionDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ActionMultipleResultResponseDto'
                  - properties:
                      result:
                        type: array
                        items:
                          type: object
                          properties:
                            isExecuted:
                              type: boolean
                              example: true
                            entity:
                              type: object
                              $ref: '#/components/schemas/QuestionDto'
                            error:
                              type: obj
                              example: >-
                                { "statusCode": 400, "message": {
                                "propertyName": { "error": "propertyName must be
                                an integer number"}}}
                              nullable: true
                            status:
                              type: number
                              format: integer
                              example: 400
                              nullable: true
      tags:
        - Product
      security:
        - bearer: []
  /products/{productId}/questions:batchDelete:
    post:
      operationId: QuestionController_deleteBatch
      summary: Удаление вопросов пачкой
      parameters:
        - name: productId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeletionMultipleDto'
      responses:
        '201':
          description: ''
      tags:
        - Product
      security:
        - bearer: []
  /products/{productId}/media:
    post:
      operationId: ProductMediaController_create
      summary: Создание превью продукта
      parameters:
        - name: productId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationProductMediaDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductMedia'
      tags:
        - Product
      security:
        - bearer: []
  /products/{productId}/media:batchCreate:
    post:
      operationId: ProductMediaController_createBatch
      summary: Создание превью продукта пачкой
      parameters:
        - name: productId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchCreationProductMediaDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ActionMultipleResultResponseDto'
                  - properties:
                      result:
                        type: array
                        items:
                          type: object
                          properties:
                            isExecuted:
                              type: boolean
                              example: true
                            entity:
                              type: object
                              $ref: '#/components/schemas/ProductMedia'
                            error:
                              type: obj
                              example: >-
                                { "statusCode": 400, "message": {
                                "propertyName": { "error": "propertyName must be
                                an integer number"}}}
                              nullable: true
                            status:
                              type: number
                              format: integer
                              example: 400
                              nullable: true
      tags:
        - Product
      security:
        - bearer: []
  /products/{productId}/media/{id}:
    patch:
      operationId: ProductMediaController_update
      summary: Обновление превью продукта
      parameters:
        - name: productId
          required: true
          in: path
          schema:
            type: number
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdationProductMediaDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductMedia'
      tags:
        - Product
      security:
        - bearer: []
  /products/{productId}/media:batchUpdate:
    post:
      operationId: ProductMediaController_updateBatch
      summary: Обновление превью продукта пачкой
      parameters:
        - name: productId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchUpdationProductMediaDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ActionMultipleResultResponseDto'
                  - properties:
                      result:
                        type: array
                        items:
                          type: object
                          properties:
                            isExecuted:
                              type: boolean
                              example: true
                            entity:
                              type: object
                              $ref: '#/components/schemas/ProductMedia'
                            error:
                              type: obj
                              example: >-
                                { "statusCode": 400, "message": {
                                "propertyName": { "error": "propertyName must be
                                an integer number"}}}
                              nullable: true
                            status:
                              type: number
                              format: integer
                              example: 400
                              nullable: true
      tags:
        - Product
      security:
        - bearer: []
  /products/{productId}/media/{mediaId}:
    delete:
      operationId: ProductMediaController_delete
      summary: Удаление превью продукта
      parameters:
        - name: productId
          required: true
          in: path
          schema:
            type: number
        - name: mediaId
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Product
      security:
        - bearer: []
  /products/{productId}/media:batchDelete:
    post:
      operationId: ProductMediaController_deleteBatch
      summary: Удаление превью продукта пачкой
      parameters:
        - name: productId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeletionMultipleDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ActionMultipleResultResponseDto'
                  - properties:
                      result:
                        type: array
                        items:
                          type: object
                          properties:
                            isExecuted:
                              type: boolean
                              example: true
                            entity:
                              type: integer
                              example: 1
                            error:
                              type: obj
                              example: >-
                                { "statusCode": 400, "message": {
                                "propertyName": { "error": "propertyName must be
                                an integer number"}}}
                              nullable: true
                            status:
                              type: number
                              format: integer
                              example: 400
                              nullable: true
      tags:
        - Product
      security:
        - bearer: []
  /products/{productId}/ratings:
    post:
      operationId: ProductRatingController_create
      parameters:
        - name: productId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationRatingDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RatingDto'
      tags:
        - Product
      security:
        - bearer: []
    get:
      operationId: ProductRatingController_list
      parameters:
        - name: productId
          required: true
          in: path
          schema:
            type: number
        - name: limit
          required: false
          in: query
          schema:
            type: number
        - name: offset
          required: false
          in: query
          schema:
            type: number
        - name: search
          required: false
          in: query
          schema:
            type: string
        - name: filters[isModerated]
          required: false
          in: query
          schema:
            type: boolean
        - name: filters[isUserComment]
          required: false
          in: query
          schema:
            type: boolean
        - name: orderBy[createdAt]
          required: false
          in: query
          schema:
            enum:
              - DESC
              - ASC
            type: string
        - name: orderBy[rate]
          required: false
          in: query
          schema:
            enum:
              - DESC
              - ASC
            type: string
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RatingDto'
      tags:
        - Product
  /products/{productId}/ratings/{id}:
    patch:
      operationId: ProductRatingController_update
      parameters:
        - name: productId
          required: true
          in: path
          schema:
            type: number
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdationRatingDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RatingDto'
      tags:
        - Product
      security:
        - bearer: []
    delete:
      operationId: ProductRatingController_delete
      parameters:
        - name: productId
          required: true
          in: path
          schema:
            type: number
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Product
      security:
        - bearer: []
    get:
      operationId: ProductRatingController_get
      parameters:
        - name: productId
          required: true
          in: path
          schema:
            type: number
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RatingDto'
      tags:
        - Product
  /roles:
    get:
      operationId: RolesController_getAllRoles
      summary: Получение всех ролей
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Roles'
      tags:
        - Roles
      security:
        - bearer: []
  /roles/user:
    get:
      operationId: RolesController_getRolesByUser
      summary: Получение ролей пользователя
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Roles'
      tags:
        - Roles
      security:
        - bearer: []
  /roles/user/{id}:
    put:
      operationId: RolesController_addRoleToUser
      summary: Выдать роль пользователю
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
        - name: roleId
          required: true
          in: query
          schema:
            type: number
      responses:
        '200':
          description: ''
      tags:
        - Roles
      security:
        - bearer: []
  /orders:
    post:
      operationId: OrderController_createOrder
      summary: Creating a new order
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationOrderDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderResponseDto'
      tags:
        - Order
    get:
      operationId: OrderController_list
      parameters:
        - name: limit
          required: false
          in: query
          schema:
            type: number
        - name: offset
          required: false
          in: query
          schema:
            type: number
        - name: search
          required: false
          in: query
          schema:
            type: string
        - name: filters[requestSources]
          required: false
          in: query
          schema:
            type: string
        - name: filters[userId]
          required: false
          in: query
          schema:
            type: number
        - name: filters[statusId]
          required: false
          in: query
          schema:
            enum:
              - 1
              - 2
            type: number
        - name: orderBy[createdAt]
          required: false
          in: query
          schema:
            enum:
              - DESC
              - ASC
            type: string
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListOrderDto'
      tags:
        - Order
      security:
        - bearer: []
  /orders/{id}:
    get:
      operationId: OrderController_get
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderV2Dto'
      tags:
        - Order
  /orders:countPrice:
    post:
      operationId: OrderController_countPrice
      summary: Count price for order
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderCountPriceDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderCountPriceResponseDto'
      tags:
        - Order
  /ratings:
    get:
      operationId: MarketplaceRatingController_list
      summary: Получение отзывов
      parameters:
        - name: limit
          required: false
          in: query
          schema:
            type: number
        - name: offset
          required: false
          in: query
          schema:
            type: number
        - name: search
          required: false
          in: query
          schema:
            type: string
        - name: filters[isModerated]
          required: false
          in: query
          schema:
            type: boolean
        - name: filters[isUserComment]
          required: false
          in: query
          schema:
            type: boolean
        - name: orderBy[createdAt]
          required: false
          in: query
          schema:
            enum:
              - DESC
              - ASC
            type: string
        - name: orderBy[rate]
          required: false
          in: query
          schema:
            enum:
              - DESC
              - ASC
            type: string
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListRatingDto'
      tags:
        - Marketplace ratings
      security:
        - bearer: []
  /ratings/{id}:moderate:
    post:
      operationId: MarketplaceRatingController_moderate
      summary: Установка отзыва как отмодерированного
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Marketplace ratings
      security:
        - bearer: []
  /ratings/{id}:unmoderate:
    post:
      operationId: MarketplaceRatingController_unmoderate
      summary: Установка отзыва как не отмодерированного
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Marketplace ratings
      security:
        - bearer: []
  /ratings/{id}:
    delete:
      operationId: MarketplaceRatingController_delete
      summary: Удалениe рейтинга
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Marketplace ratings
      security:
        - bearer: []
  /authors:
    post:
      operationId: AuthorController_create
      summary: Добавление автора
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationAuthorDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Author'
      tags:
        - Authors
      security:
        - bearer: []
  /authors/{id}:
    patch:
      operationId: AuthorController_update
      summary: Обновление автора
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdationAuthorDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Author'
      tags:
        - Authors
      security:
        - bearer: []
    delete:
      operationId: AuthorController_delete
      summary: Удаление автора
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Authors
      security:
        - bearer: []
  /articles:
    get:
      operationId: ArticleController_list
      summary: >-
        Старый метод для получения статей(не использовать), существует для
        обратной совместимости
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Articles
  /articles/count:
    get:
      operationId: ArticleController_getCount
      summary: >-
        Старый метод для получения количеств(не использовать), существует для
        обратной совместимости
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Articles
  /articles/important:
    get:
      operationId: ArticleController_listImportant
      summary: >-
        Старый метод для получение важных статей(не использовать), существует
        для обратной совместимости
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Articles
  /v2/articles:
    post:
      operationId: ArticleV2Controller_create
      summary: Создание статьи
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationArticleDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArticleDto'
      tags:
        - Articles
      security:
        - bearer: []
    get:
      operationId: ArticleV2Controller_list
      summary: Получение списка статей
      parameters:
        - name: limit
          required: false
          in: query
          schema:
            type: number
        - name: offset
          required: false
          in: query
          schema:
            type: number
        - name: search
          required: false
          in: query
          schema:
            type: string
        - name: orderBy[publishedAt]
          required: false
          in: query
          schema:
            enum:
              - DESC
              - ASC
            type: string
        - name: filters[topics]
          required: false
          in: query
          schema:
            type: string
        - name: filters[formats]
          required: false
          in: query
          schema:
            type: string
        - name: filters[publicationStatusId]
          required: false
          in: query
          schema:
            type: number
        - name: filters[maxPublishedAt]
          example: '2023-02-02'
          required: false
          in: query
          schema:
            type: string
        - name: filters[minPublishedAt]
          example: '2023-02-02'
          required: false
          in: query
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListArticleDto'
      tags:
        - Articles
  /v2/articles/{id}:
    patch:
      operationId: ArticleV2Controller_update
      summary: Обновление статьи
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdationArticleDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArticleDto'
      tags:
        - Articles
      security:
        - bearer: []
    get:
      operationId: ArticleV2Controller_get
      summary: Получение статьи
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArticleDto'
      tags:
        - Articles
    delete:
      operationId: ArticleV2Controller_delete
      summary: Удаление статьи
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Articles
      security:
        - bearer: []
  /v2/articles/{id}:setViewed:
    post:
      operationId: ArticleV2Controller_setViewed
      summary: Добавление статьи в просмотренные
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Articles
      security:
        - bearer: []
  /v2/articles/{articleId}/sources:
    post:
      operationId: ArticleV2Controller_createAritcleSource
      summary: Добавление источника к статье
      parameters:
        - name: articleId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationArticleSourceDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArticleSource'
      tags:
        - Articles
      security:
        - bearer: []
    get:
      operationId: ArticleV2Controller_listAritcleSource
      summary: Получение источников статьи
      parameters:
        - name: articleId
          required: true
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListArticleSourceDto'
      tags:
        - Articles
  /v2/articles/{articleId}/sources:batchCreate:
    post:
      operationId: ArticleV2Controller_createAritcleSourceBatch
      summary: Добавление источников к статье пачкой
      parameters:
        - name: articleId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchCreationArticleSourceDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ActionMultipleResultResponseDto'
                  - properties:
                      result:
                        type: array
                        items:
                          type: object
                          properties:
                            isExecuted:
                              type: boolean
                              example: true
                            entity:
                              type: object
                              $ref: '#/components/schemas/ArticleSource'
                            error:
                              type: obj
                              example: >-
                                { "statusCode": 400, "message": {
                                "propertyName": { "error": "propertyName must be
                                an integer number"}}}
                              nullable: true
                            status:
                              type: number
                              format: integer
                              example: 400
                              nullable: true
      tags:
        - Articles
      security:
        - bearer: []
  /v2/articles/{articleId}/sources/{id}:
    patch:
      operationId: ArticleV2Controller_updateAritcleSource
      summary: Обновление источника статьи
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
        - name: articleId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdationArticleSourceDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArticleSource'
      tags:
        - Articles
      security:
        - bearer: []
    delete:
      operationId: ArticleV2Controller_deleteAritcleSource
      summary: Удаление источника статьи
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
        - name: articleId
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Articles
      security:
        - bearer: []
  /v2/articles/{articleId}/sources:batchUpdate:
    post:
      operationId: ArticleV2Controller_updateArticleSourceBatch
      summary: Обновление источников статьи пачкой
      parameters:
        - name: articleId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchUpdationArticleSourceDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ActionMultipleResultResponseDto'
                  - properties:
                      result:
                        type: array
                        items:
                          type: object
                          properties:
                            isExecuted:
                              type: boolean
                              example: true
                            entity:
                              type: object
                              $ref: '#/components/schemas/ArticleSource'
                            error:
                              type: obj
                              example: >-
                                { "statusCode": 400, "message": {
                                "propertyName": { "error": "propertyName must be
                                an integer number"}}}
                              nullable: true
                            status:
                              type: number
                              format: integer
                              example: 400
                              nullable: true
      tags:
        - Articles
      security:
        - bearer: []
  /v2/articles/{articleId}/sources:batchDelete:
    post:
      operationId: ArticleV2Controller_deleteArticleSourceBatch
      summary: Удаление источников статьи пачкой
      parameters:
        - name: articleId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeletionMultipleDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ActionMultipleResultResponseDto'
                  - properties:
                      result:
                        type: array
                        items:
                          type: object
                          properties:
                            isExecuted:
                              type: boolean
                              example: true
                            entity:
                              type: object
                              $ref: '#/components/schemas/ArticleSource'
                            error:
                              type: obj
                              example: >-
                                { "statusCode": 400, "message": {
                                "propertyName": { "error": "propertyName must be
                                an integer number"}}}
                              nullable: true
                            status:
                              type: number
                              format: integer
                              example: 400
                              nullable: true
      tags:
        - Articles
      security:
        - bearer: []
  /v2/articles/{id}:publish:
    post:
      operationId: ArticleV2Controller_setStatusPublished
      summary: Смена статуса статьи на Опубликовано
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Articles
      security:
        - bearer: []
  /v2/articles/{id}:hide:
    post:
      operationId: ArticleV2Controller_setStatusNotPublished
      summary: Смена статуса статьи на Не опубликовано
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Articles
      security:
        - bearer: []
  /v2/articles/{articleId}/topics:batchAdd:
    post:
      operationId: ArticleV2Controller_addTopicsToArticleBatch
      summary: Добавление тем к статье пачкой
      parameters:
        - name: articleId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeletionMultipleDto'
      responses:
        '204':
          description: ''
      tags:
        - Articles
      security:
        - bearer: []
  /v2/articles/{articleId}/topics:batchRemove:
    post:
      operationId: ArticleV2Controller_removeTopicsFromArticleBatch
      summary: Исключение тем из статьи пачкой
      parameters:
        - name: articleId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeletionMultipleDto'
      responses:
        '204':
          description: ''
      tags:
        - Articles
      security:
        - bearer: []
  /articleFormats:
    get:
      operationId: ArticleFormatController_list
      summary: Получение форматов статей
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListArticleFormatDto'
      tags:
        - Article Formats
  /users/{id}/favoriteArticles:add:
    post:
      operationId: UserArticleController_add
      summary: Добавление статьи в избранное
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationFavoriteArticleDto'
      responses:
        '204':
          description: ''
      tags:
        - User
      security:
        - bearer: []
  /users/{id}/favoriteArticles:remove:
    post:
      operationId: UserArticleController_delete
      summary: Удаление статьи из избранного
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationFavoriteArticleDto'
      responses:
        '204':
          description: ''
      tags:
        - User
      security:
        - bearer: []
  /users/{id}/favoriteArticles:
    get:
      operationId: UserArticleController_list
      summary: Получение избранных статей
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
        - name: limit
          required: false
          in: query
          schema:
            type: number
        - name: offset
          required: false
          in: query
          schema:
            type: number
        - name: search
          required: false
          in: query
          schema:
            type: string
        - name: orderBy[publishedAt]
          required: false
          in: query
          schema:
            enum:
              - DESC
              - ASC
            type: string
        - name: filters[topics]
          required: false
          in: query
          schema:
            type: string
        - name: filters[formats]
          required: false
          in: query
          schema:
            type: string
        - name: filters[publicationStatusId]
          required: false
          in: query
          schema:
            type: number
        - name: filters[maxPublishedAt]
          example: '2023-02-02'
          required: false
          in: query
          schema:
            type: string
        - name: filters[minPublishedAt]
          example: '2023-02-02'
          required: false
          in: query
          schema:
            type: string
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListArticleDto'
      tags:
        - User
      security:
        - bearer: []
  /categories/category:
    post:
      operationId: CategoryController_create
      summary: Создание категории
      description: showUntil должен быть UTC-формате
      parameters: []
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CreationCategoryDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryDto'
      tags:
        - Categories
  /categories/category/{id}:
    patch:
      operationId: CategoryController_update
      summary: Обновление категории
      description: showUntil должен быть UTC-формате
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UpdationCategoryDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryDto'
      tags:
        - Categories
    delete:
      operationId: CategoryController_delete
      summary: Удаление категории
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Categories
    get:
      operationId: CategoryController_get
      summary: Получение категории
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultCategoryDto'
      tags:
        - Categories
  /categories:
    get:
      operationId: CategoryController_listActive
      summary: Получение всех активных категорий с активными историями
      description: " Активная категория это категори у которой showUntil = null или showUntl > Current_Timestamp. \n\t\tАктивная история это история у которой showUntil = null или showUntil > Current_Timestamp."
      parameters: []
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCategoryDto'
      tags:
        - Categories
  /categories/all:
    get:
      operationId: CategoryController_list
      summary: Получение всех категорий
      parameters: []
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCategoryDto'
      tags:
        - Categories
  /categories/story:
    post:
      operationId: StoryController_create
      summary: Создание истории
      description: showUntil должен быть UTC-формате
      parameters: []
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CreationStoryDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoryDto'
      tags:
        - Categories
  /categories/story/{id}:
    patch:
      operationId: StoryController_update
      summary: Обновление истории
      description: showUntil должен быть UTC-формате
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UpdationStoryDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoryDto'
      tags:
        - Categories
    delete:
      operationId: StoryController_delete
      summary: Удаление истории
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Categories
  /categories/story/{id}/view:
    post:
      operationId: StoryController_setViewed
      summary: Установка истории как просмотренной
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultStoryDto'
      tags:
        - Categories
      security:
        - bearer: []
  /waysContact:
    post:
      operationId: WayContactController_createWayContact
      summary: Creating a way contact
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationWayContactDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WayContactResponseDto'
      security:
        - bearer: []
      tags:
        - WayContact
    get:
      operationId: WayContactController_getAllWaysContact
      summary: Getting all way contact
      parameters: []
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WaysContactWithCountResponseDto'
      tags:
        - WayContact
  /waysContact/wayContact/{id}:
    patch:
      operationId: WayContactController_updateWayContact
      summary: Updating a way contact by the id
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdationWayContactDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WayContactResponseDto'
      security:
        - bearer: []
      tags:
        - WayContact
    get:
      operationId: WayContactController_getWayContact
      summary: Getting a way contact by the id
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WayContactResponseDto'
      tags:
        - WayContact
    delete:
      operationId: WayContactController_deleteWayContact
      summary: Deleting a way contact by the id
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      security:
        - bearer: []
      tags:
        - WayContact
  /registrations:
    get:
      operationId: RegistrationController_list
      parameters:
        - name: limit
          required: false
          in: query
          schema:
            type: number
        - name: offset
          required: false
          in: query
          schema:
            type: number
        - name: search
          required: false
          in: query
          schema:
            type: string
        - name: orderBy[createdAt]
          required: false
          in: query
          schema:
            enum:
              - DESC
              - ASC
            type: string
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListRegistrationDto'
      tags:
        - Registrations
      security:
        - bearer: []
  /applicationPlaces:
    post:
      operationId: ApplicationPlaceController_create
      summary: Создание места в приложении
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationApplicationPlaceDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationPlaceResponseDto'
      tags:
        - ApplicationPlace
    get:
      operationId: ApplicationPlaceController_list
      summary: Получение списка мест в приложении
      parameters: []
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListApplicationPlaceDto'
      tags:
        - ApplicationPlace
  /applicationPlaces/applicationPlace/{id}:
    patch:
      operationId: ApplicationPlaceController_update
      summary: Обновление места в приложении
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdationApplicationPlaceDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationPlaceResponseDto'
      tags:
        - ApplicationPlace
    get:
      operationId: ApplicationPlaceController_get
      summary: Получение места в приложении
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationPlaceResponseDto'
      tags:
        - ApplicationPlace
    delete:
      operationId: ApplicationPlaceController_delete
      summary: Удаление места в приложении
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResult'
      tags:
        - ApplicationPlace
  /applicationTabs:
    get:
      operationId: ApplicationTabController_get
      summary: Получение табов для футера приложения
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationTabDto'
      tags:
        - ApplicationTabs
  /banners:
    post:
      operationId: BannerController_createBanner
      summary: Creating a banner
      description: >-
        Either link or articleId must be given. showUntil should be in UTC
        format
      parameters: []
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CreationBannerDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BannerResponseDto'
      tags:
        - Banners
    get:
      operationId: BannerController_getBanners
      summary: Getting all banners
      parameters:
        - name: limit
          required: false
          in: query
          schema:
            type: number
        - name: offset
          required: false
          in: query
          schema:
            type: number
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WithCountBannersResponseDto'
      tags:
        - Banners
  /banners/banner/{id}:
    patch:
      operationId: BannerController_updateBanner
      summary: Updating a banner by the id
      description: >-
        Either link or articleId must be given. showUntil should be in UTC
        format
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UpdationBannerDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BannerResponseDto'
      tags:
        - Banners
    get:
      operationId: BannerController_getBanner
      summary: Getting a banner by the id
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BannerResponseDto'
      tags:
        - Banners
    delete:
      operationId: BannerController_deleteBanner
      summary: Deleting a banner by the id
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResult'
      tags:
        - Banners
  /banners/active:
    get:
      operationId: BannerController_getActiveBanners
      summary: Getting active banners
      description: >-
        Active banner is a banner having showUntil = null or showUntil >
        CURRENT_TIMESTAMP
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Banners
  /recipes:
    get:
      operationId: RecipesController_getRecipes
      summary: get recipes
      parameters:
        - name: offset
          required: false
          in: query
          schema:
            type: number
        - name: limit
          required: false
          in: query
          schema:
            type: number
        - name: search
          required: false
          in: query
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListRecipesDto'
      tags:
        - Recipes
      security:
        - bearer: []
    post:
      operationId: RecipesController_createRecipe
      summary: create recipe
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationRecipeDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOneRecipeDto'
      tags:
        - Recipes
      security:
        - bearer: []
  /recipes/{id}:
    get:
      operationId: RecipesController_getRecipeById
      summary: get recipe
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetRecipeByIdDTO'
      tags:
        - Recipes
      security:
        - bearer: []
    put:
      operationId: RecipesController_updateRecipe
      summary: update recipe
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateRecipeDtoBody'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOneRecipeDto'
      tags:
        - Recipes
      security:
        - bearer: []
    delete:
      operationId: RecipesController_deleteRecipe
      summary: delete recipe
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListRecipesDto'
      tags:
        - Recipes
      security:
        - bearer: []
  /recipes/recipe/{id}:
    get:
      operationId: RecipesController_getOneRecipe
      summary: get one recipe for admins
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOneRecipeDto'
      tags:
        - Recipes
      security:
        - bearer: []
  /recipes/{id}/rate:
    put:
      operationId: RecipesController_rateRecipe
      summary: rate recipe
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
        - name: rating
          required: true
          in: query
          schema:
            type: number
      responses:
        '200':
          description: ''
      tags:
        - Recipes
      security:
        - bearer: []
        - bearer: []
  /companies:
    post:
      operationId: CompanyController_create
      summary: Создание компании
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationCompanyDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyDto'
      tags:
        - Company
      security:
        - bearer: []
    get:
      operationId: CompanyController_list
      summary: Получение компании
      parameters:
        - name: limit
          required: false
          in: query
          schema:
            type: number
        - name: offset
          required: false
          in: query
          schema:
            type: number
        - name: search
          required: false
          in: query
          schema:
            type: string
        - name: orderBy[createdAt]
          required: false
          in: query
          schema:
            enum:
              - DESC
              - ASC
            type: string
        - name: filters[publicationStatusId]
          required: false
          in: query
          schema:
            type: number
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCompanyDto'
      tags:
        - Company
      security:
        - bearer: []
  /companies/{id}:
    patch:
      operationId: CompanyController_update
      summary: Обновление компании
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationCompanyDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyDto'
      tags:
        - Company
      security:
        - bearer: []
    get:
      operationId: CompanyController_get
      summary: Получение компании
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyDto'
      tags:
        - Company
    delete:
      operationId: CompanyController_softDelete
      summary: (Софт)Удаление компании
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Company
      security:
        - bearer: []
  /companies/{id}:publish:
    post:
      operationId: CompanyController_publish
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Company
      security:
        - bearer: []
  /companies/{id}:hide:
    post:
      operationId: CompanyController_hide
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Company
      security:
        - bearer: []
  /companies/{id}/productRatings:
    get:
      operationId: CompanyController_listProductRatings
      summary: Получение отзывов продуктов компании
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
        - name: limit
          required: false
          in: query
          schema:
            type: number
        - name: offset
          required: false
          in: query
          schema:
            type: number
        - name: search
          required: false
          in: query
          schema:
            type: string
        - name: filters[isModerated]
          required: false
          in: query
          schema:
            type: boolean
        - name: filters[isUserComment]
          required: false
          in: query
          schema:
            type: boolean
        - name: orderBy[createdAt]
          required: false
          in: query
          schema:
            enum:
              - DESC
              - ASC
            type: string
        - name: orderBy[rate]
          required: false
          in: query
          schema:
            enum:
              - DESC
              - ASC
            type: string
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListRatingDto'
      tags:
        - Company
  /companies/{companyId}/staff:
    post:
      operationId: CompanyStaffController_create
      summary: Добавление участинка команды компании
      parameters:
        - name: companyId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationStaffDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StaffDto'
      tags:
        - Company
      security:
        - bearer: []
    get:
      operationId: CompanyStaffController_list
      summary: Получения списка участников команды компании
      parameters:
        - name: companyId
          required: true
          in: path
          schema:
            type: number
        - name: limit
          required: false
          in: query
          schema:
            type: number
        - name: offset
          required: false
          in: query
          schema:
            type: number
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListStaffDto'
      tags:
        - Company
  /companies/{companyId}/staff:batchCreate:
    post:
      operationId: CompanyStaffController_batchCreate
      summary: Добавление участников команды компании пачкой
      parameters:
        - name: companyId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchCreationStaffDto'
      responses:
        '201':
          description: ''
      tags:
        - Company
      security:
        - bearer: []
  /companies/{companyId}/staff/{id}:
    patch:
      operationId: CompanyStaffController_update
      summary: Обновление участинка команды компании
      parameters:
        - name: companyId
          required: true
          in: path
          schema:
            type: number
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdationStaffDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StaffDto'
      tags:
        - Company
      security:
        - bearer: []
    delete:
      operationId: CompanyStaffController_delete
      summary: Удаление участинка команды компании
      parameters:
        - name: companyId
          required: true
          in: path
          schema:
            type: number
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Company
      security:
        - bearer: []
  /companies/{companyId}/staff:batchUpdate:
    post:
      operationId: CompanyStaffController_batchUpdate
      summary: Добавление участинков команды компании пачкой
      parameters:
        - name: companyId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchUpdationStaffDto'
      responses:
        '201':
          description: ''
      tags:
        - Company
      security:
        - bearer: []
  /companies/{companyId}/staff:batchDelete:
    post:
      operationId: CompanyStaffController_batchDelete
      summary: Добавление участинков команды компании пачкой
      parameters:
        - name: companyId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeletionMultipleDto'
      responses:
        '201':
          description: ''
      tags:
        - Company
      security:
        - bearer: []
  /courses/{courseId}/contents:
    get:
      operationId: CourseContentController_list
      summary: Получение содержания курса
      parameters:
        - name: courseId
          required: true
          in: path
          schema:
            type: number
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCourseContentDto'
      tags:
        - Course
    post:
      operationId: CourseContentController_create
      summary: Создание содержания курса
      parameters:
        - name: courseId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationCourseContentDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CourseContent'
      tags:
        - Course
      security:
        - bearer: []
  /courses/{courseId}/contents:batchCreate:
    post:
      operationId: CourseContentController_createBatch
      summary: Создание содержания курса пачкой
      parameters:
        - name: courseId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchCreationCourseContentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ActionMultipleResultResponseDto'
                  - properties:
                      result:
                        type: array
                        items:
                          type: object
                          properties:
                            isExecuted:
                              type: boolean
                              example: true
                            entity:
                              type: object
                              $ref: '#/components/schemas/CourseContent'
                            error:
                              type: obj
                              example: >-
                                { "statusCode": 400, "message": {
                                "propertyName": { "error": "propertyName must be
                                an integer number"}}}
                              nullable: true
                            status:
                              type: number
                              format: integer
                              example: 400
                              nullable: true
      tags:
        - Course
      security:
        - bearer: []
  /courses/{courseId}/contents/{id}:
    patch:
      operationId: CourseContentController_update
      summary: Обновление содержания курса
      parameters:
        - name: courseId
          required: true
          in: path
          schema:
            type: number
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdationCourseContentDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CourseContent'
      tags:
        - Course
      security:
        - bearer: []
    delete:
      operationId: CourseContentController_delete
      summary: Удаления содержания курса
      parameters:
        - name: courseId
          required: true
          in: path
          schema:
            type: number
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Course
      security:
        - bearer: []
  /courses/{courseId}/contents:batchUpdate:
    post:
      operationId: CourseContentController_updateBatch
      summary: Обновление содержания курса пачкой
      parameters:
        - name: courseId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchUpdationCourseContentdto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ActionMultipleResultResponseDto'
                  - properties:
                      result:
                        type: array
                        items:
                          type: object
                          properties:
                            isExecuted:
                              type: boolean
                              example: true
                            entity:
                              type: object
                              $ref: '#/components/schemas/CourseContent'
                            error:
                              type: obj
                              example: >-
                                { "statusCode": 400, "message": {
                                "propertyName": { "error": "propertyName must be
                                an integer number"}}}
                              nullable: true
                            status:
                              type: number
                              format: integer
                              example: 400
                              nullable: true
      tags:
        - Course
      security:
        - bearer: []
  /courses/{courseId}/contents:batchDelete:
    post:
      operationId: CourseContentController_deleteBatch
      summary: Удаление содержания курса пачкой
      parameters:
        - name: courseId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeletionMultipleDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ActionMultipleResultResponseDto'
                  - properties:
                      result:
                        type: array
                        items:
                          type: object
                          properties:
                            isExecuted:
                              type: boolean
                              example: true
                            entity:
                              type: integer
                              example: 1
                            error:
                              type: obj
                              example: >-
                                { "statusCode": 400, "message": {
                                "propertyName": { "error": "propertyName must be
                                an integer number"}}}
                              nullable: true
                            status:
                              type: number
                              format: integer
                              example: 400
                              nullable: true
      tags:
        - Course
      security:
        - bearer: []
  /courses/{courseId}/attachments:
    get:
      operationId: CourseAttachmentController_list
      summary: Получение активных(delete_at = null) вложений курса
      parameters:
        - name: courseId
          required: true
          in: path
          schema:
            type: number
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCourseAttachmentDto'
      tags:
        - Course
      security:
        - bearer: []
    post:
      operationId: CourseAttachmentController_create
      summary: Создание вложения курса
      parameters:
        - name: courseId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationCourseAttachmentDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CourseAttachment'
      tags:
        - Course
      security:
        - bearer: []
  /courses/{courseId}/attachments:batchCreate:
    post:
      operationId: CourseAttachmentController_batchCreate
      summary: Создание вложения курса пачкой
      parameters:
        - name: courseId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchCreationCourseAttachmentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ActionMultipleResultResponseDto'
                  - properties:
                      result:
                        type: array
                        items:
                          type: object
                          properties:
                            isExecuted:
                              type: boolean
                              example: true
                            entity:
                              type: object
                              $ref: '#/components/schemas/CourseAttachment'
                            error:
                              type: obj
                              example: >-
                                { "statusCode": 400, "message": {
                                "propertyName": { "error": "propertyName must be
                                an integer number"}}}
                              nullable: true
                            status:
                              type: number
                              format: integer
                              example: 400
                              nullable: true
      tags:
        - Course
      security:
        - bearer: []
  /courses/{courseId}/attachments/{attachmentId}:
    delete:
      operationId: CourseAttachmentController_softDelete
      summary: (Софт)Удаление вложения курса
      parameters:
        - name: attachmentId
          required: true
          in: path
          schema:
            type: number
        - name: courseId
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Course
      security:
        - bearer: []
  /courses/{courseId}/attachments:batchDelete:
    post:
      operationId: CourseAttachmentController_batchSoftDelete
      summary: (Софт)Удаление вложения курса пачкой
      parameters:
        - name: courseId
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeletionMultipleDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ActionMultipleResultResponseDto'
                  - properties:
                      result:
                        type: array
                        items:
                          type: object
                          properties:
                            isExecuted:
                              type: boolean
                              example: true
                            entity:
                              type: integer
                              example: 1
                            error:
                              type: obj
                              example: >-
                                { "statusCode": 400, "message": {
                                "propertyName": { "error": "propertyName must be
                                an integer number"}}}
                              nullable: true
                            status:
                              type: number
                              format: integer
                              example: 400
                              nullable: true
      tags:
        - Course
      security:
        - bearer: []
  /courses:
    post:
      operationId: CourseV2Controller_create
      summary: Создание курса
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationCourseDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CourseDto'
      tags:
        - Course
      security:
        - bearer: []
    get:
      operationId: CourseV2Controller_list
      summary: Получение списка курсов
      parameters:
        - name: limit
          required: false
          in: query
          schema:
            type: number
        - name: offset
          required: false
          in: query
          schema:
            type: number
        - name: search
          required: false
          in: query
          schema:
            type: string
        - name: orderBy[order]
          required: false
          in: query
          schema:
            enum:
              - DESC
              - ASC
            type: string
        - name: orderBy[price]
          required: false
          in: query
          schema:
            enum:
              - DESC
              - ASC
            type: string
        - name: orderBy[publishedAt]
          required: false
          in: query
          schema:
            enum:
              - DESC
              - ASC
            type: string
        - name: filters[topics]
          required: false
          in: query
          schema:
            type: string
        - name: filters[formats]
          required: false
          in: query
          schema:
            type: string
        - name: filters[companyId]
          required: false
          in: query
          schema:
            type: number
        - name: filters[publicationStatusId]
          required: false
          in: query
          schema:
            type: number
        - name: filters[companyPublicationStatusId]
          required: false
          in: query
          schema:
            type: number
        - name: filters[favorite]
          required: false
          in: query
          schema:
            type: boolean
        - name: filters[maxPublishedAt]
          example: '2023-02-02'
          required: false
          in: query
          schema:
            type: string
        - name: filters[minPublishedAt]
          example: '2023-02-02'
          required: false
          in: query
          schema:
            type: string
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCourseDto'
      tags:
        - Course
  /courses/{id}:
    patch:
      operationId: CourseV2Controller_update
      summary: Обновление курса
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdationCourseDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CourseDto'
      tags:
        - Course
      security:
        - bearer: []
    delete:
      operationId: CourseV2Controller_softDelete
      summary: (Софт) Удаление курса
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Course
      security:
        - bearer: []
    get:
      operationId: CourseV2Controller_get
      summary: Получение курса
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CourseDto'
      tags:
        - Course
  /courses/{id}/topics:batchAdd:
    post:
      operationId: CourseV2Controller_addTopics
      summary: Добавление тем к курсу пачкой
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeletionMultipleDto'
      responses:
        '204':
          description: ''
      tags:
        - Course
      security:
        - bearer: []
  /courses/{id}/topics:batchRemove:
    post:
      operationId: CourseV2Controller_removeTopics
      summary: Открепление тем от курса пачкой
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeletionMultipleDto'
      responses:
        '204':
          description: ''
      tags:
        - Course
      security:
        - bearer: []
  /course-formats:
    get:
      operationId: CourseFormatController_list
      parameters: []
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCourseFormatDto'
      tags:
        - Course formats
  /topics:
    get:
      operationId: TopicController_list
      parameters: []
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListTopicDto'
      tags:
        - Topics
  /user/send-feedback:
    put:
      operationId: MailerController_sendMail
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendMailDto'
      responses:
        '200':
          description: ''
      security:
        - bearer: []
      tags:
        - Mailer
  /user/send-feedback-unauth:
    post:
      operationId: MailerController_sendMailNoAuth
      parameters: []
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SendMailDto'
      responses:
        '201':
          description: ''
      tags:
        - Mailer
  /user/test/send-feedback-unauth-from-landing:
    post:
      operationId: MailerController_sendMailNoAuthFromLanding
      parameters: []
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SendMailFromLandingBodyDto'
      responses:
        '201':
          description: ''
      tags:
        - Mailer
  /payment-widget/tinkoff:
    get:
      operationId: PaymentController_getPaymentWidgetTinkoff
      parameters:
        - name: orderId
          required: true
          in: query
          schema:
            type: number
      responses:
        '200':
          description: ''
      tags:
        - Payment
    post:
      operationId: PaymentController_callbackPaymentWidgetTinkoff
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TinkoffCallbackBodyDto'
      responses:
        '200':
          description: ''
      tags:
        - Payment
  /payment/order/{id}/pay:
    post:
      operationId: PaymentController_payForOrder
      summary: Payment for an order whose price is zero
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Payment
  /promocodes:
    post:
      operationId: PromocodeController_create
      summary: Создание промокода
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationPromocodeDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PromocodeDto'
      tags:
        - Promocodes
      security:
        - bearer: []
    get:
      operationId: PromocodeController_list
      summary: Получение списка промокодов
      parameters:
        - name: limit
          required: false
          in: query
          schema:
            type: number
        - name: offset
          required: false
          in: query
          schema:
            type: number
        - name: search
          required: false
          in: query
          schema:
            type: string
        - name: orderBy[endDate]
          required: false
          in: query
          schema:
            enum:
              - DESC
              - ASC
            type: string
        - name: orderBy[usageCounter]
          required: false
          in: query
          schema:
            enum:
              - DESC
              - ASC
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPromocodeDto'
      tags:
        - Promocodes
      security:
        - bearer: []
  /promocodes/{id}:
    patch:
      operationId: PromocodeController_update
      summary: Обновление промокода
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdationPromocodeDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PromocodeDto'
      tags:
        - Promocodes
      security:
        - bearer: []
    delete:
      operationId: PromocodeController_delete
      summary: Удаление промокода
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Promocodes
      security:
        - bearer: []
  /promocodeTypes:
    get:
      operationId: PromocodeTypeController_list
      summary: Получение типов промокодов
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPromocodeTypeDto'
      tags:
        - Promocode Types
  /promocodeAccessTypes:
    get:
      operationId: PromocodeAccessTypeController_list
      summary: Получение типов доступа промокодов
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPromocodeAccessTypeDto'
      tags:
        - Promocode Access Types
  /statistics:
    get:
      operationId: StatisticsController_list
      parameters:
        - name: filters[period]
          in: query
          required: true
          schema:
            enum:
              - all
              - year
              - month
              - week
              - yesterday
              - day
            type: string
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListStatisticsDto'
      tags:
        - Statistics
      security:
        - bearer: []
  /avatars:
    post:
      operationId: AvatarController_createAvatar
      summary: Adding file to avatar list
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationAvatarDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AvatarDto'
      tags:
        - Avatars
      security:
        - bearer: []
    get:
      operationId: AvatarController_list
      summary: Getting list of avatars
      parameters: []
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAvatarDto'
      tags:
        - Avatars
      security:
        - bearer: []
  /avatars/{id}:
    delete:
      operationId: AvatarController_delete
      summary: Delete avatar from list
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Avatars
      security:
        - bearer: []
  /cities:
    get:
      operationId: CityController_list
      summary: Получение списка городов
      parameters:
        - name: limit
          required: false
          in: query
          schema:
            type: number
        - name: offset
          required: false
          in: query
          schema:
            type: number
        - name: search
          required: false
          in: query
          schema:
            type: string
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCityDto'
      tags:
        - Cities
      security:
        - bearer: []
    post:
      operationId: CityController_createCity
      summary: Добавление города в список админом
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationCityDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CityDto'
      tags:
        - Cities
      security:
        - bearer: []
  /cities/{id}:
    delete:
      operationId: CityController_delete
      summary: Удаление города из списка
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '204':
          description: ''
      tags:
        - Cities
      security:
        - bearer: []
info:
  title: companyName
  description: ''
  version: '1.0'
  contact: {}
tags: []
servers: []
components:
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http
  schemas:
    Ingredient:
      type: object
      properties:
        id:
          type: number
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
      required:
        - id
        - createdAt
        - updatedAt
    AddIngredientDto:
      type: object
      properties:
        title:
          type: string
      required:
        - title
    DeleteResult:
      type: object
      properties: {}
    CheckDTO:
      type: object
      properties:
        userId:
          type: number
      required:
        - userId
    TokenDTO:
      type: object
      properties:
        accessToken:
          type: string
        refreshToken:
          type: string
        expiresIn:
          type: number
      required:
        - accessToken
        - refreshToken
        - expiresIn
    AdminCredentialsUserDto:
      type: object
      properties:
        email:
          type: string
          example: test@gmail.com
        password:
          type: string
          example: $wfes12adfdafs
      required:
        - email
        - password
    FinishRegistrationUserDto:
      type: object
      properties:
        email:
          type: string
          example: test@gmail.com
        code:
          type: string
          example: Ge3J4f
      required:
        - email
        - code
    PhoneAuthDTOBody:
      type: object
      properties:
        phone:
          type: string
      required:
        - phone
    PhoneAuthCallbackDTOQuery:
      type: object
      properties:
        code:
          type: string
        phone:
          type: string
      required:
        - code
        - phone
    CheckEmailResponseDto:
      type: object
      properties:
        doesUserExist:
          type: boolean
          example: true
      required:
        - doesUserExist
    CredentialsBodyDto:
      type: object
      properties:
        email:
          type: string
          example: test@gmail.com
        password:
          type: string
          example: $wfes12adfdafs
      required:
        - email
        - password
    EmailBodyDto:
      type: object
      properties:
        email:
          type: string
          example: test@gmail.com
      required:
        - email
    UpdationProfileDto:
      type: object
      properties:
        name:
          type: string
        gender:
          type: string
          enum:
            - m
            - f
        avatar:
          type: string
          format: base64
        phone:
          type: string
        email:
          type: string
        wayContactId:
          type: number
    WayContact:
      type: object
      properties:
        id:
          type: number
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
      required:
        - id
        - createdAt
        - updatedAt
    UpdateProfileBO:
      type: object
      properties:
        name:
          type: string
        gender:
          type: string
        avatar:
          type: string
        email:
          type: string
        phone:
          type: string
        wayContact:
          $ref: '#/components/schemas/WayContact'
      required:
        - name
        - gender
        - avatar
        - email
        - phone
        - wayContact
    ChildDto:
      type: object
      properties:
        id:
          type: number
        name:
          type: string
        avatar:
          type: string
          nullable: true
        gender:
          type: string
          enum:
            - m
            - f
        birthdate:
          type: string
        feedingStart:
          type: string
        schemaId:
          type: number
      required:
        - id
        - name
        - avatar
        - gender
        - birthdate
        - feedingStart
        - schemaId
    Rating:
      type: object
      properties: {}
    UserResponseDto:
      type: object
      properties:
        name:
          type: string
        gender:
          type: string
          enum:
            - m
            - f
        avatar:
          type: string
          nullable: true
        email:
          type: string
          nullable: true
        phone:
          type: string
          nullable: true
        wayContact:
          $ref: '#/components/schemas/WayContact'
        children:
          nullable: true
          type: array
          items:
            $ref: '#/components/schemas/ChildDto'
        rating:
          nullable: true
          type: array
          items:
            $ref: '#/components/schemas/Rating'
      required:
        - name
        - gender
        - avatar
        - email
        - phone
        - wayContact
        - children
        - rating
    UserAuthTypeResponseDto:
      type: object
      properties:
        authType:
          type: string
          example: phone|google|facebook|yandex|vkontakte|apple|email
      required:
        - authType
    ChangePasswordDto:
      type: object
      properties:
        oldPassword:
          type: string
          example: $wfes12adfdafs
        newPassword:
          type: string
          example: $wfes12adfdafs
      required:
        - oldPassword
        - newPassword
    CheckPasswordDto:
      type: object
      properties:
        password:
          type: string
          example: $wfes12adfdafs
      required:
        - password
    PasswordCheckDto:
      type: object
      properties:
        isCorrect:
          type: boolean
          example: true
      required:
        - isCorrect
    PasswordBodyDto:
      type: object
      properties:
        password:
          type: string
          example: $wfes12adfdafs
      required:
        - password
    UserDto:
      type: object
      properties:
        id:
          type: number
        phone:
          type: string
        isPhoneNumberConfirmed:
          type: boolean
        authType:
          type: string
          enum:
            - phone
            - google
            - facebook
            - yandex
            - vkontakte
            - apple
            - email
        email:
          type: string
        lastActivityAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        createdAt:
          format: date-time
          type: string
        ip:
          type: string
      required:
        - id
        - phone
        - isPhoneNumberConfirmed
        - authType
        - email
        - lastActivityAt
        - updatedAt
        - createdAt
        - ip
    ListUserDto:
      type: object
      properties:
        users:
          type: array
          items:
            $ref: '#/components/schemas/UserDto'
      required:
        - users
    CityDto:
      type: object
      properties:
        id:
          type: number
          example: 1
        name:
          type: string
          example: city name
      required:
        - id
        - name
    ProfileV2Dto:
      type: object
      properties:
        name:
          type: string
        avatar:
          type: string
        city:
          $ref: '#/components/schemas/CityDto'
        familyRole:
          type: string
        dateOfBirth:
          format: date-time
          type: string
        phoneNumber:
          type: string
      required:
        - name
        - avatar
        - city
        - familyRole
        - dateOfBirth
        - phoneNumber
    UserWithProfileV2Dto:
      type: object
      properties:
        id:
          type: number
        phone:
          type: string
        isPhoneNumberConfirmed:
          type: boolean
        authType:
          type: string
          enum:
            - phone
            - google
            - facebook
            - yandex
            - vkontakte
            - apple
            - email
        email:
          type: string
        lastActivityAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        createdAt:
          format: date-time
          type: string
        ip:
          type: string
        profile:
          $ref: '#/components/schemas/ProfileV2Dto'
        children:
          type: array
          items:
            $ref: '#/components/schemas/ChildDto'
      required:
        - id
        - phone
        - isPhoneNumberConfirmed
        - authType
        - email
        - lastActivityAt
        - updatedAt
        - createdAt
        - ip
        - profile
        - children
    UpdationProfileV2Dto:
      type: object
      properties:
        name:
          type: string
        avatar:
          type: string
        cityId:
          type: number
          default: 1
        familyRole:
          type: string
          enum:
            - mother
            - father
            - grandmother
            - grandfather
            - companyNamesitter
        dateOfBirth:
          type: date
          default: 1995-01-15T00:00:00.000Z
          nullable: true
        phoneNumber:
          type: string
      required:
        - name
    UpdationChildV2Dto:
      type: object
      properties:
        name:
          type: object
          example: name
        gender:
          type: string
          enum:
            - m
            - f
        birthdate:
          format: date
          type: string
        feedingStart:
          type: object
          format: date
          description: относиться к старой схеме
          example: '2023-01-22'
        avatar:
          type: string
          example: e4aeb820-0012-472b-8439-861872e17ae1.png
    ChildResponseDto:
      type: object
      properties:
        id:
          type: number
        name:
          type: object
          example: name
        gender:
          type: object
          example: m
        avatar:
          type: object
          example: e4aeb820-0012-472b-8439-861872e17ae1.png
        birthdate:
          format: date
          type: string
        feedingStart:
          type: object
          example: '2024-04-15'
        actualFeedingStart:
          type: object
          example: '2024-04-15'
      required:
        - id
        - name
        - gender
        - avatar
        - feedingStart
        - actualFeedingStart
    CreationChildHeightDto:
      type: object
      properties:
        value:
          type: number
      required:
        - value
    ChildHeightDto:
      type: object
      properties:
        value:
          type: number
        childId:
          type: number
        date:
          format: date-time
          type: string
          example: '2024-03-03'
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        differenceForPreviousDay:
          type: number
          example: 4|null
      required:
        - value
        - childId
        - date
        - createdAt
        - updatedAt
        - differenceForPreviousDay
    ListChildHeightDto:
      type: object
      properties:
        heights:
          type: array
          items:
            $ref: '#/components/schemas/ChildHeightDto'
      required:
        - heights
    CreationChildWeightDto:
      type: object
      properties:
        value:
          type: number
      required:
        - value
    ChildWeight:
      type: object
      properties:
        value:
          type: number
        childId:
          type: number
        date:
          format: date-time
          type: string
          example: '2024-03-03'
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
      required:
        - value
        - childId
        - date
        - createdAt
        - updatedAt
    ChildWeightDto:
      type: object
      properties:
        value:
          type: number
        childId:
          type: number
        date:
          format: date-time
          type: string
          example: '2024-03-03'
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        differenceForPreviousDay:
          type: number
          example: 4|null
      required:
        - value
        - childId
        - date
        - createdAt
        - updatedAt
        - differenceForPreviousDay
    ListChildWeightDto:
      type: object
      properties:
        weights:
          type: array
          items:
            $ref: '#/components/schemas/ChildWeightDto'
      required:
        - weights
    ChildStatisticProducts:
      type: object
      properties:
        total:
          type: number
        used:
          type: number
        differenceForPreviousMonth:
          type: number
      required:
        - total
        - used
        - differenceForPreviousMonth
    ChildStatisticFeed:
      type: object
      properties:
        days:
          type: object
          example: 10
        dateStart:
          type: object
          example: '2024-03-03'
      required:
        - days
        - dateStart
    ChildStatisticCurrentDifference:
      type: object
      properties:
        current:
          type: object
          example: 10
        differenceForPrevious:
          type: object
          example: 4
        differenceDays:
          type: object
          example: 3
      required:
        - current
        - differenceForPrevious
        - differenceDays
    ChildStatisticAllergens:
      type: object
      properties:
        current:
          type: number
          example: 10
        differenceForPreviousMonth:
          type: number
          example: 5
      required:
        - current
        - differenceForPreviousMonth
    ChildStatisticDto:
      type: object
      properties:
        products:
          $ref: '#/components/schemas/ChildStatisticProducts'
        feed:
          $ref: '#/components/schemas/ChildStatisticFeed'
        weight:
          $ref: '#/components/schemas/ChildStatisticCurrentDifference'
        height:
          $ref: '#/components/schemas/ChildStatisticCurrentDifference'
        allergens:
          $ref: '#/components/schemas/ChildStatisticAllergens'
      required:
        - products
        - feed
        - weight
        - height
        - allergens
    ProductTypeDto:
      type: object
      properties:
        id:
          type: number
          example: '1'
        name:
          type: string
          example: name
      required:
        - id
        - name
    ProductTypeBodyDto:
      type: object
      properties:
        products:
          type: array
          items:
            $ref: '#/components/schemas/ProductTypeDto'
      required:
        - products
    PlanItem:
      type: object
      properties:
        weight:
          type: number
        date:
          type: string
      required:
        - weight
        - date
    ReplacedProducts:
      type: object
      properties:
        id:
          type: number
        name:
          type: string
        slotName:
          type: string
      required:
        - id
        - name
        - slotName
    Step:
      type: object
      properties:
        id:
          type: number
        completed:
          type: boolean
          default: false
        allergen:
          type: boolean
          default: true
        postponed:
          type: boolean
          default: false
        plan:
          type: array
          items:
            $ref: '#/components/schemas/PlanItem'
        name:
          type: string
        productTypeId:
          type: number
        productTypeName:
          type: string
        productCategory:
          type: string
        lastDayTimestamp:
          type: number
          default: 1663286400000
        unitOfMeasure:
          type: string
          enum:
            - gram
            - part
            - ml
        replacedProducts:
          $ref: '#/components/schemas/ReplacedProducts'
      required:
        - id
        - completed
        - allergen
        - postponed
        - plan
        - name
        - productTypeId
        - productTypeName
        - productCategory
        - lastDayTimestamp
        - unitOfMeasure
        - replacedProducts
    SchemaResponseDto:
      type: object
      properties:
        currentPausedDate:
          type: string
        steps:
          type: array
          items:
            $ref: '#/components/schemas/Step'
      required:
        - currentPausedDate
        - steps
    ExcludeProductTypeResponseDto:
      type: object
      properties:
        steps:
          type: array
          items:
            $ref: '#/components/schemas/Step'
      required:
        - steps
    StepProductTypeResponseDto:
      type: object
      properties:
        id:
          type: number
        name:
          type: string
        excluded:
          type: boolean
      required:
        - id
        - name
        - excluded
    CheckReplacedProductResponseDto:
      type: object
      properties:
        replaced:
          type: boolean
      required:
        - replaced
    PostponeStepResponseDto:
      type: object
      properties:
        steps:
          type: array
          items:
            $ref: '#/components/schemas/Step'
      required:
        - steps
    PostponedStepsDto:
      type: object
      properties:
        postponedSteps:
          type: array
          items:
            $ref: '#/components/schemas/Step'
      required:
        - postponedSteps
    ReturnPostponedStepResponseDto:
      type: object
      properties:
        steps:
          type: array
          items:
            $ref: '#/components/schemas/Step'
      required:
        - steps
    AllergenBodyDto:
      type: object
      properties:
        allergenIds:
          type: array
          items:
            type: integer
      required:
        - allergenIds
    AllrgenStepsResponseDto:
      type: object
      properties:
        allergenedSteps:
          type: array
          items:
            $ref: '#/components/schemas/Step'
      required:
        - allergenedSteps
    ChangeStepAttachedProductTypeBodyDto:
      type: object
      properties:
        productTypeId:
          type: number
        excludeCurrent:
          type: boolean
      required:
        - productTypeId
        - excludeCurrent
    ChangeStepAttachedProductTypeResponseDto:
      type: object
      properties:
        steps:
          type: array
          items:
            $ref: '#/components/schemas/Step'
      required:
        - steps
    Position:
      type: object
      properties:
        name:
          type: string
        weight:
          type: number
        unitOfMeasure:
          type: string
          enum:
            - gram
            - part
            - ml
        supplementary:
          type: string
        schemaStepId:
          type: number
        productTypeId:
          type: integer
          nullable: true
      required:
        - name
        - weight
        - unitOfMeasure
        - productTypeId
    MenuDayDataItem:
      type: object
      properties:
        id:
          type: number
        title:
          type: string
        time:
          type: string
          example: '12:00'
        endTime:
          type: string
          example: '13:00'
        positions:
          type: array
          items:
            $ref: '#/components/schemas/Position'
        supplementary:
          type: string
      required:
        - id
        - title
        - time
        - endTime
        - positions
    MenuDayResponseDto:
      type: object
      properties:
        date:
          type: string
          format: date
        data:
          type: array
          items:
            $ref: '#/components/schemas/MenuDayDataItem'
        isPause:
          type: boolean
      required:
        - date
        - data
        - isPause
    SchemaPauseBodyDto:
      type: object
      properties:
        date:
          type: string
          format: date
      required:
        - date
    MealtimesDto:
      type: object
      properties:
        id:
          type: number
          format: integer
          example: '1'
        title:
          type: string
          example: title
        startTime:
          type: string
          example: '12:00'
        endTime:
          type: string
          example: '14:30'
      required:
        - id
        - title
        - startTime
        - endTime
    ChangeMealtimeDto:
      type: object
      properties:
        startTime:
          type: string
          example: '12:00'
        endTime:
          type: string
          example: '13:30'
        mealtimeId:
          type: number
          example: 1
      required:
        - startTime
        - endTime
        - mealtimeId
    ChangeMultipleMealtimesBodyDto:
      type: object
      properties:
        mealtimes:
          type: array
          items:
            $ref: '#/components/schemas/ChangeMealtimeDto'
      required:
        - mealtimes
    FileDto:
      type: object
      properties:
        file:
          type: string
      required:
        - file
    DeletionMultipleDto:
      type: object
      properties:
        ids:
          type: array
          items:
            type: number
      required:
        - ids
    CreationFavoriteProductDto:
      type: object
      properties:
        productId:
          type: number
      required:
        - productId
    QuestionAnswer:
      type: object
      properties:
        id:
          type: number
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        question:
          type: string
        answer:
          type: string
        order:
          type: number
        questionType:
          type: string
        productId:
          type: number
      required:
        - id
        - createdAt
        - updatedAt
        - question
        - answer
        - order
        - questionType
        - productId
    ListQuestionDto:
      type: object
      properties:
        questions:
          type: array
          items:
            $ref: '#/components/schemas/QuestionAnswer'
      required:
        - questions
    CreationQuestionDto:
      type: object
      properties:
        question:
          type: string
          example: question
        answer:
          type: string
          example: answer
        order:
          type: number
        questionType:
          type: string
      required:
        - question
        - answer
        - order
        - questionType
    ActionMultipleResultResponseDto:
      type: object
      properties:
        result:
          type: array
          items:
            type: array
      required:
        - result
    ActionMultipleResponseDto:
      type: object
      properties: {}
    QuestionDto:
      type: object
      properties:
        id:
          type: number
          example: 1
        question:
          type: string
          example: question
        answer:
          type: string
          example: answer
        order:
          type: number
          example: 1
        questionType:
          type: string
        productId:
          type: number
          example: 1
      required:
        - id
        - question
        - answer
        - order
        - questionType
        - productId
    BatchCreationQuestionDto:
      type: object
      properties:
        questions:
          type: array
          items:
            $ref: '#/components/schemas/CreationQuestionDto'
      required:
        - questions
    UpdationQuestionDto:
      type: object
      properties:
        question:
          type: string
          example: question
        answer:
          type: string
          example: answer
        order:
          type: number
          example: 1
        questionType:
          type: string
          example: organizational | frequent
      required:
        - question
        - answer
        - order
        - questionType
    UpdationQuestionForBatchDto:
      type: object
      properties:
        question:
          type: string
          example: question
        answer:
          type: string
          example: answer
        order:
          type: number
          example: 1
        questionType:
          type: string
          example: organizational | frequent
        id:
          type: number
      required:
        - question
        - answer
        - order
        - questionType
        - id
    BatchUpdationQuestionDto:
      type: object
      properties:
        questions:
          type: array
          items:
            $ref: '#/components/schemas/UpdationQuestionForBatchDto'
      required:
        - questions
    CreationProductMediaDto:
      type: object
      properties:
        file:
          type: string
        order:
          type: number
      required:
        - file
    ProductMedia:
      type: object
      properties:
        id:
          type: number
        file:
          type: string
        order:
          type: number
        productId:
          type: number
      required:
        - id
        - file
        - order
        - productId
    BatchCreationProductMediaDto:
      type: object
      properties:
        media:
          type: array
          items:
            $ref: '#/components/schemas/CreationProductMediaDto'
      required:
        - media
    UpdationProductMediaDto:
      type: object
      properties:
        file:
          type: string
        order:
          type: number
      required:
        - file
    UpdationProductMediaForBatchDto:
      type: object
      properties:
        file:
          type: string
        order:
          type: number
        id:
          type: number
      required:
        - file
        - id
    BatchUpdationProductMediaDto:
      type: object
      properties:
        media:
          type: array
          items:
            $ref: '#/components/schemas/UpdationProductMediaForBatchDto'
      required:
        - media
    Number:
      type: object
      properties: {}
    CreationRatingDto:
      type: object
      properties:
        rate:
          type: number
          example: 5
        comment:
          type: string
          example: comment
          nullable: true
      required:
        - rate
        - comment
    ProductInRatingDto:
      type: object
      properties:
        id:
          type: number
          example: 1
        title:
          type: string
          example: title
        image:
          type: string
          example: test.png
      required:
        - id
        - title
        - image
    RatingDto:
      type: object
      properties:
        id:
          type: number
          example: 1
        rate:
          type: number
          example: 5
        name:
          type: object
          example: Евгения
        comment:
          type: object
          example: example example example
        isModerated:
          type: boolean
        createdAt:
          format: date-time
          type: string
        userId:
          type: object
          example: 1
        product:
          $ref: '#/components/schemas/ProductInRatingDto'
      required:
        - id
        - rate
        - name
        - comment
        - isModerated
        - createdAt
        - userId
        - product
    UpdationRatingDto:
      type: object
      properties:
        rate:
          type: number
          example: 5
        comment:
          type: string
          example: comment
          nullable: true
    Roles:
      type: object
      properties: {}
    CreationOrderDto:
      type: object
      properties:
        name:
          type: string
          example: Евгения
        phone:
          type: string
          example: '+79999999999'
        email:
          type: string
          example: test@gmail.com
        productId:
          type: number
          example: 1
        promocode:
          type: string
      required:
        - name
        - phone
        - email
        - productId
        - promocode
    OrderItemResponseDto:
      type: object
      properties:
        productId:
          type: number
        title:
          type: string
          example: title
        amount:
          type: number
          example: 1
        price:
          type: number
          example: 150
        createdAt:
          format: date-time
          type: string
      required:
        - productId
        - title
        - amount
        - price
        - createdAt
    OrderResponseDto:
      type: object
      properties:
        id:
          type: number
        email:
          type: string
        phone:
          type: string
        name:
          type: string
        createdAt:
          format: date-time
          type: string
        status:
          type: string
        userId:
          type: number
        price:
          type: number
        items:
          type: array
          items:
            $ref: '#/components/schemas/OrderItemResponseDto'
      required:
        - id
        - email
        - phone
        - name
        - createdAt
        - status
        - userId
        - price
        - items
    CompanyInNewCourseDto:
      type: object
      properties:
        id:
          type: number
        title:
          type: string
        legalTitle:
          type: string
        description:
          type: string
        logo:
          type: string
        inn:
          type: string
        formOrganization:
          type: string
      required:
        - id
        - title
        - legalTitle
        - description
        - logo
        - inn
        - formOrganization
    CompanyStaff:
      type: object
      properties:
        id:
          type: number
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
      required:
        - id
        - createdAt
        - updatedAt
    ProductV2Dto:
      type: object
      properties:
        id:
          type: number
        title:
          type: string
          example: title
        description:
          type: string
          example: description
        price:
          type: number
          example: 200.02
        publishedAt:
          format: date-time
          type: string
        discount:
          type: number
        discountPrice:
          type: number
        image:
          type: string
          example: test.png
        superOrder:
          type: number
          example: 1
        order:
          type: number
          example: 1
        deletedAt:
          format: date-time
          type: string
        publicationStatusId:
          type: number
          example: 1
        averageRate:
          type: object
          example: 5
        company:
          $ref: '#/components/schemas/CompanyInNewCourseDto'
        staff:
          type: array
          items:
            $ref: '#/components/schemas/CompanyStaff'
        media:
          type: array
          items:
            $ref: '#/components/schemas/ProductMedia'
      required:
        - id
        - title
        - description
        - price
        - publishedAt
        - discount
        - discountPrice
        - image
        - superOrder
        - order
        - deletedAt
        - publicationStatusId
        - averageRate
        - company
        - staff
        - media
    PromocodeAccessType:
      type: object
      properties:
        id:
          type: number
        title:
          type: string
      required:
        - id
        - title
    PromocodeType:
      type: object
      properties:
        id:
          type: number
        title:
          type: string
      required:
        - id
        - title
    PromocodeDto:
      type: object
      properties:
        id:
          type: number
        title:
          type: string
        image:
          type: string
        endDate:
          type: string
          nullable: true
        discountCurrency:
          type: string
          enum:
            - ruble
            - percentage
        discount:
          type: number
        usageCounter:
          type: object
        products:
          nullable: true
          type: array
          items:
            $ref: '#/components/schemas/ProductV2Dto'
        accessType:
          $ref: '#/components/schemas/PromocodeAccessType'
        type:
          $ref: '#/components/schemas/PromocodeType'
        users:
          nullable: true
          type: array
          items:
            $ref: '#/components/schemas/UserDto'
      required:
        - id
        - title
        - image
        - endDate
        - discountCurrency
        - discount
        - usageCounter
        - products
        - accessType
        - type
        - users
    OrderStatusDto:
      type: object
      properties:
        id:
          type: number
        title:
          type: string
      required:
        - id
        - title
    AttachmentDto:
      type: object
      properties:
        id:
          type: number
        file:
          type: string
        name:
          type: string
        deletedAt:
          format: date-time
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
      required:
        - id
        - file
        - name
        - deletedAt
        - createdAt
        - updatedAt
    CourseAtOrderDto:
      type: object
      properties:
        id:
          type: number
        attachments:
          type: array
          items:
            $ref: '#/components/schemas/AttachmentDto'
      required:
        - id
        - attachments
    ProductAtOrderDto:
      type: object
      properties:
        id:
          type: number
          example: 1
        title:
          type: string
          example: title
          nullable: true
        image:
          type: string
          example: image.png
        deletedAt:
          format: date-time
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        course:
          $ref: '#/components/schemas/CourseAtOrderDto'
      required:
        - id
        - title
        - image
        - deletedAt
        - createdAt
        - updatedAt
        - course
    OrderItemDto:
      type: object
      properties:
        productId:
          type: number
        product:
          $ref: '#/components/schemas/ProductAtOrderDto'
        title:
          type: string
        amount:
          type: number
        price:
          type: number
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
      required:
        - productId
        - product
        - title
        - amount
        - price
        - createdAt
        - updatedAt
    OrderV2Dto:
      type: object
      properties:
        id:
          type: number
        email:
          type: string
        phone:
          type: string
        name:
          type: string
        totalPrice:
          type: number
        promocode:
          $ref: '#/components/schemas/PromocodeDto'
        emailSend:
          type: boolean
        requestSource:
          type: string
          enum:
            - mobile
            - site
        status:
          $ref: '#/components/schemas/OrderStatusDto'
        userId:
          type: number
        sessionId:
          type: string
        items:
          type: array
          items:
            $ref: '#/components/schemas/OrderItemDto'
        createdAt:
          format: date-time
          type: string
        userRatingId:
          type: number
      required:
        - id
        - email
        - phone
        - name
        - totalPrice
        - promocode
        - emailSend
        - requestSource
        - status
        - userId
        - sessionId
        - items
        - createdAt
        - userRatingId
    ListOrderDto:
      type: object
      properties:
        orders:
          type: array
          items:
            $ref: '#/components/schemas/OrderV2Dto'
      required:
        - orders
    OrderCountPriceDto:
      type: object
      properties:
        promocode:
          type: string
          example: promocode
        productId:
          type: number
          example: '1'
      required:
        - promocode
        - productId
    OrderCountPriceResponseDto:
      type: object
      properties:
        price:
          type: number
          example: 100
        discountCurrency:
          type: string
          enum:
            - ruble
            - percentage
        discount:
          type: number
      required:
        - price
        - discountCurrency
        - discount
    ListRatingDto:
      type: object
      properties:
        ratings:
          type: array
          items:
            $ref: '#/components/schemas/RatingDto'
      required:
        - ratings
    CreationAuthorDto:
      type: object
      properties:
        name:
          type: string
        avatar:
          type: string
        positionAtWork:
          type: string
      required:
        - name
        - avatar
        - positionAtWork
    Author:
      type: object
      properties:
        id:
          type: number
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        name:
          type: string
        avatar:
          type: string
        positionAtWork:
          type: string
      required:
        - id
        - createdAt
        - updatedAt
        - name
        - avatar
        - positionAtWork
    UpdationAuthorDto:
      type: object
      properties:
        name:
          type: string
        avatar:
          type: string
        positionAtWork:
          type: string
      required:
        - name
        - avatar
        - positionAtWork
    CreationArticleDto:
      type: object
      properties:
        title:
          type: string
        body:
          type: string
        image:
          type: string
        publishedAt:
          type: string
          example: '2023-01-01'
        superOrder:
          type: number
        authorId:
          type: number
        formatId:
          type: number
      required:
        - title
        - body
        - image
        - publishedAt
        - superOrder
        - authorId
        - formatId
    Topic:
      type: object
      properties:
        id:
          type: number
        title:
          type: string
        order:
          type: number
      required:
        - id
        - title
        - order
    ArticleFormat:
      type: object
      properties:
        id:
          type: number
        title:
          type: string
        order:
          type: number
      required:
        - id
        - title
        - order
    PublicationStatus:
      type: object
      properties:
        id:
          type: number
        title:
          type: string
      required:
        - id
        - title
    ArticleDto:
      type: object
      properties:
        id:
          type: number
        title:
          type: string
        image:
          type: string
        publishedAt:
          type: string
        createdAt:
          format: date-time
          type: string
        superOrder:
          type: number
        topics:
          type: array
          items:
            $ref: '#/components/schemas/Topic'
        format:
          $ref: '#/components/schemas/ArticleFormat'
        publicationStatus:
          $ref: '#/components/schemas/PublicationStatus'
        author:
          $ref: '#/components/schemas/Author'
        body:
          type: string
        isFavorite:
          type: boolean
      required:
        - id
        - title
        - image
        - publishedAt
        - createdAt
        - superOrder
        - topics
        - format
        - publicationStatus
        - author
        - body
        - isFavorite
    UpdationArticleDto:
      type: object
      properties:
        title:
          type: string
        body:
          type: string
        image:
          type: string
        publishedAt:
          type: string
          example: '2023-01-01'
        superOrder:
          type: number
        authorId:
          type: number
        formatId:
          type: number
      required:
        - title
        - body
        - image
        - publishedAt
        - superOrder
        - authorId
        - formatId
    PreviewArticleDto:
      type: object
      properties:
        id:
          type: number
        title:
          type: string
        image:
          type: string
        publishedAt:
          type: string
        createdAt:
          format: date-time
          type: string
        superOrder:
          type: number
        topics:
          type: array
          items:
            $ref: '#/components/schemas/Topic'
        format:
          $ref: '#/components/schemas/ArticleFormat'
        publicationStatus:
          $ref: '#/components/schemas/PublicationStatus'
        author:
          $ref: '#/components/schemas/Author'
      required:
        - id
        - title
        - image
        - publishedAt
        - createdAt
        - superOrder
        - topics
        - format
        - publicationStatus
        - author
    ListArticleDto:
      type: object
      properties:
        articles:
          type: array
          items:
            $ref: '#/components/schemas/PreviewArticleDto'
        count:
          type: number
      required:
        - articles
        - count
    CreationArticleSourceDto:
      type: object
      properties:
        title:
          type: string
        link:
          type: string
        order:
          type: number
      required:
        - title
        - link
        - order
    ArticleSource:
      type: object
      properties:
        id:
          type: number
        title:
          type: string
        link:
          type: string
        articleId:
          type: number
        order:
          type: number
      required:
        - id
        - title
        - link
        - articleId
        - order
    BatchCreationArticleSourceDto:
      type: object
      properties:
        sources:
          type: array
          items:
            $ref: '#/components/schemas/CreationArticleSourceDto'
      required:
        - sources
    ListArticleSourceDto:
      type: object
      properties:
        sources:
          type: array
          items:
            $ref: '#/components/schemas/ArticleSource'
      required:
        - sources
    UpdationArticleSourceDto:
      type: object
      properties:
        title:
          type: string
        link:
          type: string
        order:
          type: number
      required:
        - title
        - link
        - order
    UpdationArticleSourceForBatchDto:
      type: object
      properties:
        title:
          type: string
        link:
          type: string
        order:
          type: number
        id:
          type: number
      required:
        - title
        - link
        - order
        - id
    BatchUpdationArticleSourceDto:
      type: object
      properties:
        sources:
          type: array
          items:
            $ref: '#/components/schemas/UpdationArticleSourceForBatchDto'
      required:
        - sources
    ListArticleFormatDto:
      type: object
      properties:
        formats:
          type: array
          items:
            $ref: '#/components/schemas/ArticleFormat'
      required:
        - formats
    CreationFavoriteArticleDto:
      type: object
      properties:
        articleId:
          type: number
      required:
        - articleId
    CreationCategoryDto:
      type: object
      properties:
        name:
          type: string
        image:
          type: string
          format: binary
        showUntil:
          type: string
          format: date
      required:
        - name
        - image
    StoryDto:
      type: object
      properties:
        id:
          type: number
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        articleId:
          type: number
          example: 0
        title:
          type: string
        image:
          type: string
        viewsCount:
          type: number
        outer_resource_link:
          type: string
          example: string | null
        showUntil:
          format: date-time
          type: string
        categoryId:
          type: number
      required:
        - id
        - createdAt
        - updatedAt
        - articleId
        - title
        - image
        - viewsCount
        - outer_resource_link
        - showUntil
        - categoryId
    ArticleAtCategoryDto:
      type: object
      properties:
        id:
          type: number
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        important:
          type: boolean
        description:
          type: string
        title:
          type: string
        body:
          type: string
        image:
          type: string
        viewsCount:
          type: number
        showUntil:
          format: date-time
          type: string
        categoryId:
          type: number
      required:
        - id
        - createdAt
        - updatedAt
        - important
        - description
        - title
        - body
        - image
        - viewsCount
        - showUntil
        - categoryId
    CategoryDto:
      type: object
      properties:
        id:
          type: number
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        name:
          type: string
        image:
          type: string
        showUntil:
          format: date-time
          type: string
        stories:
          type: array
          items:
            $ref: '#/components/schemas/StoryDto'
        articles:
          type: array
          items:
            $ref: '#/components/schemas/ArticleAtCategoryDto'
      required:
        - id
        - createdAt
        - updatedAt
        - name
        - image
        - showUntil
        - stories
        - articles
    UpdationCategoryDto:
      type: object
      properties:
        name:
          type: string
        image:
          type: string
          format: binary
        showUntil:
          type: string
          format: date
    ListCategoryDto:
      type: object
      properties:
        categories:
          type: array
          items:
            $ref: '#/components/schemas/CategoryDto'
        categoriesCount:
          type: number
      required:
        - categories
        - categoriesCount
    ResultCategoryDto:
      type: object
      properties:
        category:
          $ref: '#/components/schemas/CategoryDto'
      required:
        - category
    CreationStoryDto:
      type: object
      properties:
        title:
          type: string
        image:
          type: string
          format: binary
        categoryId:
          type: number
        articleId:
          type: number
        outer_resource_link:
          type: string
        showUntil:
          type: string
          format: date
      required:
        - title
        - image
        - categoryId
    UpdationStoryDto:
      type: object
      properties:
        title:
          type: string
        image:
          type: string
          format: binary
        categoryId:
          type: number
        articleId:
          type: number
        outer_resource_link:
          type: string
        showUntil:
          type: string
          format: date
    ResultStoryDto:
      type: object
      properties:
        story:
          $ref: '#/components/schemas/StoryDto'
      required:
        - story
    CreationWayContactDto:
      type: object
      properties:
        title:
          type: string
        order:
          type: number
      required:
        - title
        - order
    WayContactResponseDto:
      type: object
      properties:
        id:
          type: number
          example: 1
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        title:
          type: string
        order:
          type: number
      required:
        - id
        - createdAt
        - updatedAt
        - title
        - order
    UpdationWayContactDto:
      type: object
      properties:
        title:
          type: string
        order:
          type: number
      required:
        - title
        - order
    WaysContactWithCountResponseDto:
      type: object
      properties:
        waysContact:
          type: array
          items:
            $ref: '#/components/schemas/WayContactResponseDto'
        waysContactCount:
          type: number
      required:
        - waysContact
        - waysContactCount
    RegistrationDto:
      type: object
      properties:
        id:
          type: number
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        email:
          type: string
        userId:
          type: number
      required:
        - id
        - createdAt
        - updatedAt
        - email
        - userId
    ListRegistrationDto:
      type: object
      properties:
        registrations:
          type: array
          items:
            $ref: '#/components/schemas/RegistrationDto'
      required:
        - registrations
    CreationApplicationPlaceDto:
      type: object
      properties:
        title:
          type: string
      required:
        - title
    ApplicationPlaceResponseDto:
      type: object
      properties:
        id:
          type: number
          example: 1
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        title:
          type: string
          example: title
      required:
        - id
        - createdAt
        - updatedAt
        - title
    UpdationApplicationPlaceDto:
      type: object
      properties:
        title:
          type: string
      required:
        - title
    ApplicationPlace:
      type: object
      properties:
        id:
          type: number
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
      required:
        - id
        - createdAt
        - updatedAt
    ListApplicationPlaceDto:
      type: object
      properties:
        applicationPlaces:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationPlace'
        applicationPlaceCount:
          type: number
      required:
        - applicationPlaces
        - applicationPlaceCount
    ApplicationTabDto:
      type: object
      properties:
        menu:
          type: boolean
        schema:
          type: boolean
        marketplace:
          type: boolean
          example: false
        articles:
          type: boolean
        more:
          type: boolean
      required:
        - menu
        - schema
        - marketplace
        - articles
        - more
    CreationBannerDto:
      type: object
      properties:
        title:
          type: string
        height:
          type: number
          format: float
        weight:
          type: number
          format: float
        image:
          type: string
          format: binary
        placeId:
          type: number
          format: integer
        showUntil:
          type: string
          format: date
        link:
          type: string
        articleId:
          type: number
          format: integer
      required:
        - title
        - height
        - weight
        - image
        - placeId
    BannerResponseDto:
      type: object
      properties:
        title:
          type: string
        showUntil:
          format: date-time
          type: string
        image:
          type: string
        height:
          type: number
        weight:
          type: number
        link:
          type: string
        place:
          $ref: '#/components/schemas/ApplicationPlace'
        articleId:
          type: number
      required:
        - title
        - showUntil
        - image
        - height
        - weight
        - link
        - place
        - articleId
    UpdationBannerDto:
      type: object
      properties:
        title:
          type: string
        height:
          type: number
          format: float
        weight:
          type: number
          format: float
        image:
          type: string
          format: binary
        placeId:
          type: number
          format: integer
        showUntil:
          type: string
          format: date
        link:
          type: string
        articleId:
          type: number
          format: integer
      required:
        - title
        - height
        - weight
        - image
        - placeId
    WithCountBannersResponseDto:
      type: object
      properties:
        banners:
          type: array
          items:
            $ref: '#/components/schemas/BannerResponseDto'
        bannerCount:
          type: number
      required:
        - banners
        - bannerCount
    Recipe:
      type: object
      properties:
        id:
          type: number
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        title:
          type: string
        cookingTime:
          type: number
        previewImage:
          type: string
          nullable: false
        image:
          type: string
          nullable: false
      required:
        - id
        - createdAt
        - updatedAt
        - title
        - cookingTime
        - previewImage
        - image
    ListRecipesDto:
      type: object
      properties:
        recipes:
          type: array
          items:
            $ref: '#/components/schemas/Recipe'
        recipesCount:
          type: number
      required:
        - recipes
        - recipesCount
    RecipeIngredients:
      type: object
      properties:
        id:
          type: number
        quantity:
          type: string
        measure:
          type: string
        ingredient:
          type: string
      required:
        - id
        - quantity
        - measure
        - ingredient
    GetRecipeByIdDTO:
      type: object
      properties:
        id:
          type: number
        createdAt:
          type: string
        updatedAt:
          type: string
        title:
          type: string
        cookingTime:
          type: number
        instructions:
          type: string
        image:
          type: string
        previewImage:
          type: string
        recipeIngredients:
          type: array
          items:
            $ref: '#/components/schemas/RecipeIngredients'
        rating:
          type: object
          example: '3'
        isRatedByUser:
          type: boolean
      required:
        - id
        - createdAt
        - updatedAt
        - title
        - cookingTime
        - instructions
        - image
        - previewImage
        - recipeIngredients
        - rating
        - isRatedByUser
    RecipeIngredientsForAdmin:
      type: object
      properties:
        id:
          type: number
        quantity:
          type: number
        measure:
          type: string
        measureId:
          type: number
        ingredient:
          type: string
        ingredientId:
          type: number
      required:
        - id
        - quantity
        - measure
        - measureId
        - ingredient
        - ingredientId
    GetOneRecipeDto:
      type: object
      properties:
        id:
          type: number
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        title:
          type: string
        cookingTime:
          type: number
        instructions:
          type: string
        image:
          type: string
        previewImage:
          type: string
        recipeIngredients:
          type: array
          items:
            $ref: '#/components/schemas/RecipeIngredientsForAdmin'
      required:
        - id
        - createdAt
        - updatedAt
        - title
        - cookingTime
        - instructions
        - image
        - previewImage
        - recipeIngredients
    AdditionIngredientsToRecipeDto:
      type: object
      properties:
        quantity:
          type: number
        ingredientId:
          type: number
        measureId:
          type: number
      required:
        - quantity
        - ingredientId
        - measureId
    CreationRecipeDto:
      type: object
      properties:
        title:
          type: string
        cookingTime:
          type: number
        instructions:
          type: string
        image:
          type: string
        previewImage:
          type: string
        recipeIngredients:
          type: array
          items:
            $ref: '#/components/schemas/AdditionIngredientsToRecipeDto'
      required:
        - title
        - cookingTime
        - instructions
        - image
        - previewImage
        - recipeIngredients
    UpdationIngredientsToRecipeDto:
      type: object
      properties:
        id:
          type: number
        quantity:
          type: number
        ingredientId:
          type: number
        measureId:
          type: number
      required:
        - id
        - quantity
        - ingredientId
        - measureId
    UpdateRecipeDtoBody:
      type: object
      properties:
        title:
          type: string
        cookingTime:
          type: number
        instructions:
          type: string
        image:
          type: string
        previewImage:
          type: string
        recipeIngredients:
          type: array
          items:
            $ref: '#/components/schemas/UpdationIngredientsToRecipeDto'
      required:
        - title
        - cookingTime
        - instructions
        - image
        - previewImage
        - recipeIngredients
    CreationCompanyDto:
      type: object
      properties:
        title:
          type: string
        description:
          type: string
          example: description
        logo:
          type: string
      required:
        - title
        - logo
    CompanyDto:
      type: object
      properties:
        id:
          type: number
          example: 1
        title:
          type: string
          example: title
        description:
          type: string
          example: description
        logo:
          type: string
          example: test.png
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
        publicationStatus:
          $ref: '#/components/schemas/PublicationStatus'
      required:
        - id
        - title
        - description
        - logo
        - createdAt
        - updatedAt
        - deletedAt
        - publicationStatus
    ListCompanyDto:
      type: object
      properties:
        companies:
          type: array
          items:
            $ref: '#/components/schemas/CompanyDto'
      required:
        - companies
    CreationStaffDto:
      type: object
      properties:
        name:
          type: object
          example: Евгений
        avatar:
          type: object
        order:
          type: number
          example: 1
        positionAtWork:
          type: object
          example: Спикер
      required:
        - avatar
        - order
    StaffDto:
      type: object
      properties:
        id:
          type: number
          example: 1
        name:
          type: object
          example: test
        avatar:
          type: string
        positionAtWork:
          type: object
          example: test
        order:
          type: number
          example: 1
        companyId:
          type: number
          example: 1
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
      required:
        - id
        - name
        - avatar
        - positionAtWork
        - order
        - companyId
        - createdAt
        - updatedAt
    BatchCreationStaffDto:
      type: object
      properties:
        staff:
          type: array
          items:
            $ref: '#/components/schemas/CreationStaffDto'
      required:
        - staff
    UpdationStaffDto:
      type: object
      properties:
        name:
          type: object
          example: Евгений
        avatar:
          type: object
        order:
          type: number
          example: 1
        positionAtWork:
          type: object
          example: Спикер
      required:
        - avatar
        - order
    UpdationStaffForBatchDto:
      type: object
      properties:
        name:
          type: object
          example: Евгений
        avatar:
          type: object
        order:
          type: number
          example: 1
        positionAtWork:
          type: object
          example: Спикер
        id:
          type: number
      required:
        - avatar
        - order
        - id
    BatchUpdationStaffDto:
      type: object
      properties:
        staff:
          type: array
          items:
            $ref: '#/components/schemas/UpdationStaffForBatchDto'
      required:
        - staff
    ListStaffDto:
      type: object
      properties:
        staff:
          type: array
          items:
            $ref: '#/components/schemas/StaffDto'
      required:
        - staff
    CourseContent:
      type: object
      properties:
        id:
          type: number
        title:
          type: string
        description:
          type: string
        place:
          type: string
        order:
          type: number
      required:
        - id
        - title
        - description
        - place
        - order
    ListCourseContentDto:
      type: object
      properties:
        contents:
          type: array
          items:
            $ref: '#/components/schemas/CourseContent'
      required:
        - contents
    CreationCourseContentDto:
      type: object
      properties:
        title:
          type: string
        description:
          type: string
        place:
          type: string
        order:
          type: number
      required:
        - title
        - description
        - place
        - order
    BatchCreationCourseContentDto:
      type: object
      properties:
        contents:
          type: array
          items:
            $ref: '#/components/schemas/CreationCourseContentDto'
      required:
        - contents
    UpdationCourseContentDto:
      type: object
      properties:
        title:
          type: string
        description:
          type: string
        place:
          type: string
        order:
          type: number
      required:
        - title
        - description
        - place
        - order
    UpdationCourseContentForBatchDto:
      type: object
      properties:
        title:
          type: string
        description:
          type: string
        place:
          type: string
        order:
          type: number
        id:
          type: number
      required:
        - title
        - description
        - place
        - order
        - id
    BatchUpdationCourseContentdto:
      type: object
      properties:
        contents:
          type: array
          items:
            $ref: '#/components/schemas/UpdationCourseContentForBatchDto'
      required:
        - contents
    CourseAttachment:
      type: object
      properties:
        id:
          type: number
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        file:
          type: string
        name:
          type: string
        courseId:
          type: number
      required:
        - id
        - createdAt
        - updatedAt
        - file
        - name
        - courseId
    ListCourseAttachmentDto:
      type: object
      properties:
        attachments:
          type: array
          items:
            $ref: '#/components/schemas/CourseAttachment'
      required:
        - attachments
    CreationCourseAttachmentDto:
      type: object
      properties:
        file:
          type: string
        name:
          type: string
      required:
        - file
        - name
    BatchCreationCourseAttachmentDto:
      type: object
      properties:
        attachments:
          type: array
          items:
            $ref: '#/components/schemas/CreationCourseAttachmentDto'
      required:
        - attachments
    CreationProductDto:
      type: object
      properties:
        title:
          type: string
        description:
          type: string
        price:
          type: number
        publishedAt:
          format: date-time
          type: string
        image:
          type: string
        companyId:
          type: number
        discountPrice:
          type: number
        superOrder:
          type: number
      required:
        - title
        - description
        - price
        - publishedAt
        - image
        - companyId
        - discountPrice
        - superOrder
    CreationCourseDto:
      type: object
      properties:
        product:
          $ref: '#/components/schemas/CreationProductDto'
        formatId:
          type: number
        videoLink:
          type: string
      required:
        - product
        - formatId
        - videoLink
    CourseFormat:
      type: object
      properties:
        id:
          type: number
        title:
          type: string
      required:
        - id
        - title
    CourseDto:
      type: object
      properties:
        id:
          type: number
          example: 1
        videoLink:
          type: string
        hasAttachments:
          type: boolean
          example: true
        format:
          $ref: '#/components/schemas/CourseFormat'
        topics:
          type: array
          items:
            $ref: '#/components/schemas/Topic'
        product:
          $ref: '#/components/schemas/ProductV2Dto'
        isFavorite:
          type: object
          example: null
        isBought:
          type: object
          example: true
        userRatingId:
          type: object
          example: 1
      required:
        - id
        - videoLink
        - hasAttachments
        - format
        - topics
        - product
        - isFavorite
        - isBought
        - userRatingId
    UpdationProductDto:
      type: object
      properties:
        title:
          type: string
        description:
          type: string
        price:
          type: number
        publishedAt:
          format: date-time
          type: string
        image:
          type: string
        companyId:
          type: number
        discountPrice:
          type: number
        superOrder:
          type: number
      required:
        - title
        - description
        - price
        - publishedAt
        - image
        - companyId
        - discountPrice
        - superOrder
    UpdationCourseDto:
      type: object
      properties:
        product:
          $ref: '#/components/schemas/UpdationProductDto'
        formatId:
          type: number
        videoLink:
          type: string
      required:
        - product
        - formatId
        - videoLink
    ProductInNewPreviewDto:
      type: object
      properties:
        id:
          type: number
          example: 1
        title:
          type: string
          example: title
        description:
          type: string
          example: description
        price:
          type: number
          example: 200.02
        discount:
          type: number
          example: 25
        publishedAt:
          format: date-time
          type: string
        discountPrice:
          type: number
          example: 200.02
        image:
          type: string
          example: test.png
        superOrder:
          type: number
          example: 1
        order:
          type: number
          example: 1
        deletedAt:
          format: date-time
          type: string
        companyId:
          type: number
          example: 1
        publicationStatusId:
          type: number
          example: 1
        averageRate:
          type: number
          example: 5
      required:
        - id
        - title
        - description
        - price
        - discount
        - publishedAt
        - discountPrice
        - image
        - superOrder
        - order
        - deletedAt
        - companyId
        - publicationStatusId
        - averageRate
    PreviewCourseV2Dto:
      type: object
      properties:
        id:
          type: number
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        videoLink:
          type: string
          example: test
        userAgreement:
          type: string
          example: https://www.youtube.com/ | asdfwefw.pdf
        formatId:
          type: number
          example: 1
        product:
          $ref: '#/components/schemas/ProductInNewPreviewDto'
      required:
        - id
        - createdAt
        - updatedAt
        - videoLink
        - userAgreement
        - formatId
        - product
    ListCourseDto:
      type: object
      properties:
        courses:
          type: array
          items:
            $ref: '#/components/schemas/PreviewCourseV2Dto'
        count:
          type: number
      required:
        - courses
        - count
    ListCourseFormatDto:
      type: object
      properties:
        formats:
          type: array
          items:
            $ref: '#/components/schemas/CourseFormat'
      required:
        - formats
    ListTopicDto:
      type: object
      properties:
        topics:
          type: array
          items:
            $ref: '#/components/schemas/Topic'
      required:
        - topics
    SendMailDto:
      type: object
      properties:
        theme:
          type: string
        email:
          type: string
        message:
          type: string
      required:
        - theme
        - email
        - message
    SendMailFromLandingBodyDto:
      type: object
      properties:
        name:
          type: string
        email:
          type: string
        message:
          type: string
      required:
        - name
        - email
        - message
    TinkoffCallbackBodyDto:
      type: object
      properties: {}
    CreationPromocodeDto:
      type: object
      properties:
        title:
          type: object
        endDate:
          type: object
          format: date
          nullable: true
          example: '2024-09-25'
        discountCurrency:
          type: string
          enum:
            - ruble
            - percentage
        discount:
          type: number
          example: '10'
        productsId:
          nullable: true
          type: array
          items:
            type: number
        usersId:
          nullable: true
          type: array
          items:
            type: number
        accessTypeId:
          type: number
          example: '1'
        typeId:
          type: number
          example: '1'
      required:
        - title
        - endDate
        - discountCurrency
        - discount
        - productsId
        - usersId
        - accessTypeId
        - typeId
    UpdationPromocodeDto:
      type: object
      properties:
        title:
          type: string
        endDate:
          type: object
          format: date
          nullable: true
          example: '2024-09-25'
        discountCurrency:
          type: string
          enum:
            - ruble
            - percentage
        discount:
          type: number
          example: '10'
        productsId:
          nullable: true
          type: array
          items:
            type: number
        usersId:
          nullable: true
          type: array
          items:
            type: number
        accessTypeId:
          type: number
          example: '1'
        typeId:
          type: number
          example: '1'
      required:
        - title
        - endDate
        - discountCurrency
        - discount
        - productsId
        - usersId
        - accessTypeId
        - typeId
    ListPromocodeDto:
      type: object
      properties:
        promocodes:
          type: array
          items:
            $ref: '#/components/schemas/PromocodeDto'
      required:
        - promocodes
    ListPromocodeTypeDto:
      type: object
      properties:
        types:
          type: array
          items:
            $ref: '#/components/schemas/PromocodeType'
      required:
        - types
    ListPromocodeAccessTypeDto:
      type: object
      properties:
        accessTypes:
          type: array
          items:
            $ref: '#/components/schemas/PromocodeAccessType'
      required:
        - accessTypes
    StatisticsDto:
      type: object
      properties:
        type:
          type: string
          enum:
            - registrations
            - users
            - orders
          example: registrations|users|orders
        amount:
          type: number
        differenceForPreviousPeriod:
          type: number
      required:
        - type
        - amount
        - differenceForPreviousPeriod
    ListStatisticsDto:
      type: object
      properties:
        statistics:
          type: array
          items:
            $ref: '#/components/schemas/StatisticsDto'
      required:
        - statistics
    CreationAvatarDto:
      type: object
      properties:
        file:
          type: string
      required:
        - file
    AvatarDto:
      type: object
      properties:
        id:
          type: number
        file:
          type: string
      required:
        - id
        - file
    ContainerAvatarDto:
      type: object
      properties:
        avatar:
          $ref: '#/components/schemas/AvatarDto'
      required:
        - avatar
    ListAvatarDto:
      type: object
      properties:
        avatars:
          type: array
          items:
            $ref: '#/components/schemas/ContainerAvatarDto'
      required:
        - avatars
    ListCityDto:
      type: object
      properties:
        cities:
          type: array
          items:
            $ref: '#/components/schemas/CityDto'
      required:
        - cities
    CreationCityDto:
      type: object
      properties:
        name:
          type: string
      required:
        - name
